首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取lli执行跟踪

如何获取lli执行跟踪
EN

Stack Overflow用户
提问于 2018-10-28 20:04:37
回答 1查看 99关注 0票数 0

有没有办法获取lli的执行轨迹。作为给定程序的示例:

代码语言:javascript
复制
define dso_local i32 @main() {
  %1 = alloca i32, align 4
  store i32 1, i32* %1, align 4
  %2 = load i32, i32* %1, align 4
  ret i32 %2
}

我希望有一些运行时输出,如:

代码语言:javascript
复制
$ lli test.ll -trace

%1 = alloca(4)
st %1, 1       ; [%1] = 1
ld %1 -> %2    ; %2 = 1
ret %2         ; ret 1

我找到了一个XRay项目,但它似乎很复杂。是否有任何llc本机方法来输出执行跟踪?

EN

回答 1

Stack Overflow用户

发布于 2018-10-28 21:07:19

我没有找到一个,最终写了一些足够通用的东西来满足我的需求,但几乎不适合一般用途。一个大问题是,任何代码都可以调用本机代码and most code does that very often,因此在遇到无法处理的CallInst之前,跟踪程序只跟踪几条指令。

如果您只对非常短的指令序列感兴趣,Analysis/ConstantFolding.h中的函数可能会有所帮助……也可能不是,这取决于你的目的。如果您必须自己编写跟踪程序,那么您可能希望查找使用InstVisitor的代码,其中一些代码可能是可用的、可重用的,或者是一个很好的起点。祝好运。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53031318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档