如何从交叉编译的二进制文件生成程序集?

时间:2015-10-15 12:04:32

标签: c binary arm cross-compiling disassembly

如何从交叉编译的二进制文件生成程序集?

使用的编译命令是:

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

任何帮助?

1 个答案:

答案 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/中。