【发布时间】:2019-03-11 22:43:25
【问题描述】:
我正在尝试在运行时从我的LLVM 优化过程中收集一些信息。换句话说,我想知道编译后特定IR指令的物理地址。所以我的想法是将LLVM 元数据转换为LLVM DWARF 数据,可以在运行时使用。我不想附上文件名和行号,而是附上我自己的信息。我的问题分为两部分:
-
下面是一段代码,可以得到一条指令的文件名和行号:
if (DILocation *Loc = I->getDebugLoc()) { // Here I is an LLVM instruction unsigned Line = Loc->getLine(); StringRef File = Loc->getFilename(); StringRef Dir = Loc->getDirectory(); bool ImplicitCode = Loc->isImplicitCode(); }
但是如何设置这些字段?我找不到相关的功能。
- 如何在(文件名和行号)运行时查看更新的调试信息?我使用
-g进行编译,但仍然看不到调试信息。
谢谢
【问题讨论】: