2009-06-26 107 views
0

我在某些C代码中发生了一些崩溃,这些代码没有调试符号,而且我只用调用堆栈的绝对地址进行回溯。这是在窗口(64位)上。我更像是一名Linux员工,所以我在如何研究调试方面有些遗憾 - 在Linux上,我会运行valgrind下的代码,但AFAIK,Windows 64位不存在这样的工具。在没有调试器的情况下进行调试

我有什么选择?我可以随意修改C代码,但是我无法使用调试符号来构建它。我无法使用调试符号构建的原因是我的二进制文件不是使用MS工具构建的(它使用mingw-w64构建)。

回答

1

您需要生成一个映射文件。映射文件列出了可执行文件/二进制文件中各种公共符号(函数,全局变量等)的地址。通常它可以通过将特殊开关传入链接器来生成。

MSDN reference for /MAP

+0

我不使用MS编译器,所以我不能使用这个 - 我编辑我的问题,使这个更清晰 – 2009-06-26 11:50:28

0

你或许应该使用的铭版GDB的,通过它可以了解嵌入二进制符号。

相关问题