Llvm 如何从MachO二进制文件中提取_比特码/_束段
对于嵌入位代码的二进制文件(即,使用Llvm 如何从MachO二进制文件中提取_比特码/_束段,llvm,llvm-ir,objdump,bitcode,objcopy,Llvm,Llvm Ir,Objdump,Bitcode,Objcopy,对于嵌入位代码的二进制文件(即,使用-fembed位代码编译)。如何提取该部分,以便像任何其他位代码文件一样使用该位代码文件,例如,运行opt或llvm dis 作为一个测试案例,我有一个hello world程序: // hello.cpp #include<iostream> int main() { std::cout << "hello world"; return 0; } 现在,根据,我正试图通过以下方式提取_位代码部分: # Take1 ./bi
-fembed位代码编译)。如何提取该部分,以便像任何其他位代码文件一样使用该位代码文件,例如,运行opt
或llvm dis
作为一个测试案例,我有一个hello world程序:
// hello.cpp
#include<iostream>
int main() {
std::cout << "hello world";
return 0;
}
现在,根据,我正试图通过以下方式提取_位代码部分:
# Take1
./bin/llvm-objcopy --dump-section=DATA,__bitcode=a.bc test.o
./bin/llvm-objcopy: error: 'test.o': section 'DATA,__bitcode' not found
# Take2
./bin/llvm-objcopy --dump-section=__bitcode=a.bc test.o
./bin/llvm-objcopy: error: 'test.o': section '__bitcode' not found
# Take3
./bin/llvm-objcopy --dump-section __DATA,__bitcode=a.bc test.o
./bin/llvm-objcopy: error: 'test.o': section '__DATA,__bitcode' not found
# Take4
./bin/llvm-objcopy --dump-section=__DATA,__bitcode=a.bc test.o
./bin/llvm-objcopy: error: 'test.o': section '__DATA,__bitcode' not found
我在这里遗漏了什么?实际上,\u位码
在LLVM
部分。所以下面的命令起作用了
llvm-objcopy --dump-section=__LLVM,__bitcode=a.bc test.o
segedit test.o -extract __LLVM __bitcode a.bc
看起来像是objdump
中的一个bug,它无法识别LLVM部分。实际上\u位代码
位于LLVM
部分。所以下面的命令起作用了
llvm-objcopy --dump-section=__LLVM,__bitcode=a.bc test.o
segedit test.o -extract __LLVM __bitcode a.bc
似乎是objdump
中的一个bug,它无法识别LLVM部分