use*_*249 2 compiler-construction llvm dwarf llvm-ir
我试图在LLVM优化期间保留DWARF调试信息,我的问题是:我能以某种方式插入LLVM中每条指令的调试信息吗?LLVM会在执行所有优化过程时保留这些信息,然后转储DWARF带注释的LLVM优化IR吗?
我相信,如果这有效,我可以有一个后端(当然支持那些调试信息)生成最终的结束代码(或多或少由于优化)可调试源代码,我是否正确?
对于llvm,优化的调试信息仍然是一个非常新的领域.它正在积极开发中,但很多都取决于你在寻找什么.精确的变量跟踪并不存在,因为它经历了变换 - 可变信息偶尔会丢失.目前SROA传球特别糟糕.
也就是说,如果您正在寻找线路信息和类型信息,那么您应该没问题.参数应该相当不错,所以你不会有太多的"通过传递优化".
至于如何注释源代码,最简单的方法是查看clang为IR和调试元数据发出的内容.确保使用DIBuilder类来处理大多数事情,并注意位置如何附加到IR级别指令.大多数代码都在clang/lib/CodeGen/CGDebugInfo.cpp中.
希望这有帮助,如果您有任何问题,请随时在llvm-dev或cfe-dev邮件列表上询问.
| 归档时间: |
|
| 查看次数: |
1590 次 |
| 最近记录: |