我在某些C代码中发生了一些崩溃,没有调试符号,我只有一个带有调用堆栈绝对地址的回溯。这是在Windows(64位)上。我更像是一个linux人,所以我对如何调试这个有点迷失 - 在Linux上,我会在valgrind下运行代码,但AFAIK,没有这样的工具存在于Windows 64位。
我有什么选择?我可以随意修改C代码,但我无法用调试符号构建它。我无法用调试符号构建的原因是我的二进制文件不是用MS工具构建的(它是用mingw-w64构建的)。
答案 0 :(得分:1)
您需要生成一个地图文件。映射文件列出了可执行文件/二进制文件中各种公共符号(函数,全局等)的地址。通常可以通过在特殊开关上传递给链接器来生成它。
答案 1 :(得分:0)
您可能应该使用mdb版本的gdb,它可以理解嵌入在二进制文件中的符号。