7

我有一个 Delphi Windows 应用程序在 Wine 下死得很惨——甚至没有创建主窗体。由于各种原因,移植到 Free Pascal 不是一种选择。

我可以在 Wine 下使用 Delphi 的原生方式进行调试吗?如果没有,我可以在 Wine 下使用 gdb 进行调试吗?如果可以,如何将 Delphi 格式的调试信息(可能是 Turbo 调试器)提供给 gdb?

最后,如何从程序中检测 Wine?Wine 常见问题解答说我不应该,但我不认为修复我的应用程序在 Wine 人的优先级列表中居高不下,所以我宁愿自己动手。

我没有编写应用程序,但我有源代码和 Delphi 的副本。

4

3 回答 3

2

我相信您应该能够使用gdb进行调试,但我不知道您将如何将所有 Delphi 源代码提供给它。您需要在 EXE(包括外部调试器)中包含所有调试信息才能开始。

我建议您获取支持通过 TCP/IP 进行日志记录的日志记录实用程序。两个不错的是SmartInspectCodeSite。将它们与JCL提供的堆栈跟踪实用程序结合起来,您可能会发现它是一个更好的解决方案,然后附加调试器。

祝你好运检测葡萄酒。我很想知道你想出了什么。似乎它应该是可能的。

于 2010-01-06T21:53:24.757 回答
1

也许可以让远程调试器连接到 Wine 应用程序(从未尝试过),但这需要很多 Wine。

我要尝试的第一件事是使用堆栈跟踪实用程序,例如JCL调试扩展。堆栈跟踪可能会为您提供足够的信息来解决问题,而无需在 Linux 下进行调试。

于 2010-01-06T21:28:51.657 回答
0

如果你有源代码,然后用一堆调试消息重新编译并尝试像在 Windows 上那样运行它。

Wine 有很多未实现的 API,您可能会幸运地使用 winetricks 随机安装额外的包。

我在我们的 Delphi 应用程序中使用 wine 时遇到了类似的问题,我需要安装 ODBC 管理器,默认情况下它不会出现,然后我才能让它工作。

于 2010-01-08T16:43:51.023 回答