llvm GDB调试的几个坑

可以用DIBuilder类辅助建立调试信息,首先createcompileunit。然后要注意了,必须调用module->addModuleFlag(Module::Warning, "Debug Info Version",DEBUG_METADATA_VERSION); 否则把bitcode写入文件再读出来调试信息会被清除。

如果要显示行号,可以在大多数llvm的指令里通过setdebugloc加入行号信息,但是scope需要填写所在的函数DISubprogram,否则在gdb的stack trace里不会显示行号

最后,在完成编译后需要调用DIBuilder的finalize


参考:http://llvm.org/docs/tutorial/LangImpl8.html

如果我早点看到这篇文章就好了

你可能感兴趣的:(llvm)