【问题标题】:Generating pure machine code with LLVM使用 LLVM 生成纯机器码
【发布时间】:2012-08-24 19:49:09
【问题描述】:

有没有办法从带有 LLVM 的模块生成“纯”机器代码?

我的意思是,我有一个模块,并且只想获取没有任何 MachO 或 Darwin 对象标头的 x86 操作码,只获取操作码(如果可能,将它们重新定位到某个基地址)。

【问题讨论】:

    标签: c++ c compiler-construction llvm bytecode


    【解决方案1】:

    我认为您正在寻找 objdump。 使用objdump -d your_executable > dump_file

    【讨论】:

      【解决方案2】:

      执行此类操作的“标准”方法是构建可执行文件,然后根据需要提取原始位。 http://www.bravegnu.org/gnu-eprog/hello-arm.html 之类的东西。

      另一种方法是使用 LLVM JIT API;不过,我没有任何好的文档或示例代码来说明如何以这种方式使用 LLVM。也许看看 lldb 中的 ClangExpressionParser::PrepareForExecution 是如何工作的(http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/ClangExpressionParser.cpp?revision=161559&view=markup)。

      【讨论】:

        猜你喜欢
        • 2012-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-05
        • 1970-01-01
        • 2015-08-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多