我正在尝试找到我在开源应用程序中找到的错误的来源。
我已经设法在我的Windows机器上进行构建和运行,但是我在查找问题的反汇编中遇到了麻烦。
我尝试了三种不同的调试器(WinDbg,OllyDbg和VisualStudio),每种调试器都给了我相同的信息。
所以,鉴于我有源代码,我可以做些什么来调试实时应用程序?如果应用程序是用C语言编写的,我该如何检查数据结构?
上面列出的任何调试器都支持加载gcc的调试符号吗?
我觉得我做的事情错了。我真的不想尝试在优化的程序集中调试这个应用程序......
答案 0 :(得分:1)
答案 1 :(得分:1)
简单的答案是:如果你不能运行它,那么最好的工具就是调试编译时错误。即使你有源头,也就是这样。
从您的描述中可以看出,您尝试根除的错误是运行时错误(不是编译时间),因此您将能够实际运行它。如果您的应用程序无法在Windows中运行,那么您不应该尝试从Windows调试它。
话虽如此,正如RageZ所暗示的那样使用像cygwin这样的东西,可能是你最好的选择。然后就像在linux中一样调试程序。
HTH
答案 2 :(得分:0)
你是如何在Windows上构建它的?
您是否可以尝试使用MSVC本身?然后,您可以构建调试版本并轻松调试 - MSVC的图形调试器非常好。
答案 3 :(得分:0)
如果其他一切都失败了,你仍然可以在你已经识别出错误的代码中放入大量的日志记录,而最好的是它甚至可以在发布模式下工作。在修复错误时,不要忘记删除日志记录行。