2015-10-15 102 views
0

如何從交叉編譯的二進制生成彙編?使用如何從交叉編譯的二進制生成彙編?

編譯命令是:

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 

任何幫助嗎?

+4

嘗試'臂-NONE-Linux的gnueabi-objdump'? –

+0

...或者安裝一個multiarch binutils,如果你真的討厭交叉工具鏈前綴。 – Notlikethat

回答

1

GCC生成組件已經,你只完成後需要告訴它不要投檔遠:

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

注意,生成的文件將只包含代碼的彙編語言,而不是東西從C庫中鏈接,例如對於printf()

要查看完整的拆卸,包括庫代碼,你可以使用arm-none-linux-gnueabi-objdump -d test

旁註:「測試」是一個壞榜樣二進制名稱,因爲有一個在任何UNIX或Linux系統/bin//usr/bin/命名test已經二進制文件。