如何在LLVM Pass中将调试信息附加到指令中

时间:2019-03-11 22:43:25

标签: c++ clang llvm

我正在尝试在运行时从LLVM优化遍收集一些信息。换句话说,我想在编译后知道特定IR指令的物理地址。因此,我的想法是将LLVM元数据转换为LLVM DWARF数据,以便在运行时使用。我不想附加文件名和行号,而是要附加自己的信息。我的问题分为两部分:

  1. 以下是可以获取指令的文件名和行号的代码:

    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(); }

但是如何设置此字段?我找不到相关的功能。

  1. 在(文件名和行号)运行时如何查看更新的调试信息?我使用-g进行编译,但仍然看不到调试信息。

谢谢

0 个答案:

没有答案