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文件没法用。
没有评论:
发表评论