我编写了一个LLVM转换,它基本上用一些看守的mallocs和其他一些东西取代了mallocs.
我正在使用clang(或llvm-gcc)来编译ac文件以获取包含调试信息的bitcode文件(使用-emit-llvm选项).这些还包含方法名称,行号等.
之后我正在使用opt来检测这个bitcode文件.结果是一个检测的bitcode文件,仍然包含所有相关的调试信息.
在第三步也是最后一步,由于我们需要一些运行时库,我们使用llvm-gcc将bitcode与其他一些bitcode文件链接起来以获得最终的二进制文件.
这个二进制文件我无法调试,因为它不包含任何调试信息,尽管所有链接的bitcode文件都包含它们.gdb唯一可以告诉我的是我们在哪个功能但没有行号等等......
任何提示我都会感激不尽.
据我了解,您正在运行优化(opt 工具还优化代码和调试信息)。那么,当调试是优化调试信息的结果时,您可能希望看到缺少的部分吗?
PS 我会在评论中添加此内容,但不幸的是我没有添加评论所需的 50 个声誉。
| 归档时间: |
|
| 查看次数: |
3048 次 |
| 最近记录: |