如何从交叉编译的二进制文件生成程序集?
使用的编译命令是:
arm-none-linux-gnueabi-gcc test.c -o test
如何反汇编二进制test
?
我用过:
objdump -d test -m arm
但它说:
test: file format elf32-little
objdump: can't use supplied machine arm
任何帮助?
答案 0 :(得分:1)
GCC已经生成了程序集,你只需要告诉它在完成时不要扔掉文件:
arm-none-linux-gnueabi-gcc -save-temps test.c -o test
请注意,生成的文件只包含代码的汇编语言,而不包含从C libraray链接的内容,例如: printf()
。
要查看包含库代码的完整反汇编,您可以使用arm-none-linux-gnueabi-objdump -d test
。
旁注:“test”是一个错误的示例二进制名称,因为在任何unix或linux系统上都有一个名为test
的二进制文件已经在/bin/
或/usr/bin/
中。