我正在尝试在运行时从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
进行编译,但仍然看不到调试信息。谢谢