Borland C++ Builder 5 编译的程序没有 PDB,因此要通过 Dump 文件来分析故障原因就太坑爹了。没有符号文件的话,汇编看起来相当痛苦。
上次查过,有个办法是使用 map2dbg,把 map 文件转换成 dbg 文件,这样 windbg 也能够加载符号文件用于调试。不过 map 里面只有函数名称,没有代码的行号,所以调试起来还是不是很方便。如果断点是在一个长长的函数里面,而且没有嵌套调用什么函数,那么对于汇编功底不深的我也是一样的郁闷。
今天下了点决心要解决这个问题,否则调试效率太低了。
感谢万能的 Google,这次我知道了有个开源项目叫 tds2dbg。用法和 map2dbg 类似,生成的 dbg 文件的确可用,而且在正确的行号上指出了我遇到的问题。这样,Crash 就不再是一个问题了。
值得注意的是:BCB 编译选项中,必须打开 Compiler->Debugging->Line Number Information,以及 Linker 里面的 Create debug information。否则生成的 dbg 文件没法用。
没有评论:
发表评论