我有一个Delphi Windows应用程序,在Wine下可怕的死亡 - 甚至没有创建主要表单。出于各种原因,移植到Free Pascal不是一种选择。
我可以使用Delphi的本地方法在Wine下调试吗?如果没有,我可以使用gdb在Wine下调试,如果是,如何将Delphi格式的调试信息(可能是Turbo Debugger)提供给gdb?
最后,如何从程序中检测出Wine?葡萄酒常见问题解答说我不应该,但我不认为修复我的应用程序在Wine的优先级列表中很高,所以我宁愿自己解决这些问题。
我没有编写应用程序,但我有源代码和Delphi的副本。
答案 0 :(得分:2)
我相信您应该可以使用 gdb 进行调试,但我不知道如何将所有Delphi源提供给它。您需要在EXE(包括外部调试器)中包含所有调试信息才能开始使用。
我建议您使用支持通过TCP / IP进行日志记录的日志记录实用程序。两个好的是SmartInspect和CodeSite。将它们与JCL提供的堆栈跟踪实用程序相结合,您可能会发现它是一个更好的解决方案,然后无论如何附加调试器。
(来源:raize.com)
(来源:gurock.com)
祝你好好检测葡萄酒。我很想知道你想出了什么。看起来它应该是可能的。
答案 1 :(得分:1)
你可能能够让远程调试器连接到Wine应用程序(从未尝试过),但这需要很多Wine。
我要尝试的第一件事是使用堆栈跟踪实用程序,如JCL调试扩展。堆栈跟踪可以为您提供足够的信息来解决问题,而无需在Linux下进行调试。
答案 2 :(得分:0)
如果您已获得源代码,则使用一堆调试消息重新编译并尝试像在Windows上一样运行它。
Wine有很多未经实现的API,你可能会在winetricks随机安装额外的软件包。
我在使用我们的Delphi应用程序的葡萄酒时遇到了类似的问题,我需要安装ODBC管理器,默认情况下我没有进入该管理器。