0

我正在尝试查找在开源应用程序中发现的错误的来源。

我已经设法在我的 Windows 机器上构建并运行,但我无法在反汇编中找到问题所在。

我尝试了三种不同的调试器(WinDbg、OllyDbg 和 VisualStudio),每一种都给了我相同的信息。

那么,鉴于我有源代码,我可以做些什么来调试实时应用程序?如果应用程序是用 C 编写的,我如何检查数据结构?

上面列出的任何调试器是否支持加载 gcc 的调试符号?

对我来说,感觉就像我在做错事。我真的不想尝试在优化的程序集中调试这个应用程序......

4

4 回答 4

1

有一些来自cygwinMinGW的 GDB 端口,为什么不直接尝试使用 gdb?

于 2009-11-13T04:05:45.450 回答
1

简单的答案是:如果您无法运行它,那么任何工具所能做的最好的事情就是调试编译时错误。即使你有来源也是如此。

根据您的描述,很明显您要根除的错误是运行时错误(而不是编译时),因此您将能够实际运行它。如果您的应用程序无法在 Windows 中运行,那么您不应该尝试从 Windows 中对其进行调试。

话虽如此,正如 RageZ 所建议的那样,使用 cygwin 之类的东西可能是你最好的选择。然后就像在 linux 中一样调试程序。

高温高压

于 2009-11-13T04:10:01.883 回答
0

如果其他一切都失败了,您仍然可以在您发现错误的代码中放置大量日志记录,最好的一点是即使在发布模式下也能正常工作。只是不要忘记在修复错误后删除日志记录行。

于 2009-11-13T08:35:15.013 回答
0

你是如何在 Windows 上构建它的?

您能否尝试使用 MSVC 本身进行构建?然后,您可以构建一个调试版本并轻松调试它 - MSVC 的图形调试器非常好。

于 2009-11-13T06:18:55.877 回答