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

How to generate assembly from a cross-compiled binary?

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

使用的编译命令是:

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

有什么帮助吗?

GCC 已经生成程序集,你只需要告诉它完成后不要丢弃文件:

arm-none-linux-gnueabi-gcc -save-temps test.c  -o test

请注意,生成的文件将仅包含代码的汇编语言,而不包含从 C 库链接的内容,例如printf().

要查看包括库代码在内的完整反汇编,您可以使用 arm-none-linux-gnueabi-objdump -d test

旁注:"test" 是一个不好的二进制名称示例,因为在任何 unix 或 linux系统.