【发布时间】:2015-08-13 09:33:16
【问题描述】:
我想逐步了解我生成的一些 LLVM IR 代码。就 llc 和 lli 而言,代码在语法上和类型有效,但结果不是我所期望的。
这些块足够大,以至于我无法简单地读出错误,而且我很难生成具有相同错误的较小示例。
我想我可以使用调试器之类的东西,但对于 LLVM IR。换句话说,我希望能够单步执行 llvm 代码,检查“无限”寄存器(给定 LLVM IR 文件中的名称)和内存位置,设置断点,直到找到我的代码出错的地方。
我查看了lli 和lldb,但似乎都不是我要寻找的工具。 lli 会运行我的代码,但不会让我一步一步走。 lldb 似乎假设代码是由 C 前端生成的。
lldb 和 lli 我错了吗?有谁知道一个工具可以完成我想要的 50% 的工作?
【问题讨论】:
-
作为一个疯狂的猜测 - 您可以调试
lli并查看它如何解释每条指令。不过,您必须进行一些黑客攻击才能设置断点。