我编写了一个LLVM转换,它基本上用一些看守的mallocs和其他一些东西取代了mallocs.
我正在使用clang(或llvm-gcc)来编译ac文件以获取包含调试信息的bitcode文件(使用-emit-llvm选项).这些还包含方法名称,行号等.
之后我正在使用opt来检测这个bitcode文件.结果是一个检测的bitcode文件,仍然包含所有相关的调试信息.
在第三步也是最后一步,由于我们需要一些运行时库,我们使用llvm-gcc将bitcode与其他一些bitcode文件链接起来以获得最终的二进制文件.
这个二进制文件我无法调试,因为它不包含任何调试信息,尽管所有链接的bitcode文件都包含它们.gdb唯一可以告诉我的是我们在哪个功能但没有行号等等......
任何提示我都会感激不尽.