当前位置:  开发笔记 > 编程语言 > 正文

如何反汇编LLVM MCJIT编译的结果?

如何解决《如何反汇编LLVMMCJIT编译的结果?》经验,为你挑选了0个好方法。

我有一个我写的程序,它使用LLVM 3.5作为JIT编译器,我正在尝试更新以在LLVM 3.7中使用MCJIT.我主要使用它,但我很难重现我用LLVM 3.5实现的一个仅调试功能.

我希望能够看到JIT过程生成的主机代码(例如x86,x64或ARM,而不是LLVM IR); 在调试版本中,我在程序运行时将其记录下来.使用LLVM 3.5,我可以通过调用ExecutionEngine :: runJITOnFunction()来填充llvm :: MachineCodeInfo对象,它给出了生成代码的起始地址和大小.然后我可以反汇编代码.

我似乎无法在MCJIT中找到任何等效物.我可以得到函数的起始地址(例如通过getPointerToFunction())但不是大小.

我见过Disassemble Memory但除了在答案中没有那么多细节之外,它似乎更多的是关于如何反汇编一系列字节.我知道怎么做,我的问题是:我怎样才能掌握字节序列?

如果它有助于使其更具体,请将此问题重新解释为:"如何扩展示例Kaleidoscope JIT以显示它生成的机器代码(x86,ARM等),而不仅仅是LLVM IR?"

谢谢.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有