2012-02-17 129 views
3

我在Linux中有一個二進制文件,我想知道它已經編譯了哪些函數。如何知道可執行文件中有哪些功能?

我的項目由幾個對象文件組成,每個對象文件包含不同的功能。有時我不知道我編譯可執行文件的是哪一個。我怎麼知道?

我正在用不同的體系結構(arm,mips ...)編譯工具鏈。

謝謝。

+2

'nm'已被提及,您也可以嘗試'objdump','readelf'(如果可用)。你甚至可以通過'grep'來找出函數是否存在,如果'foo'是一個符號存在,當你執行'grep foo helloworld.o'時,你會得到一個類似'Binary file helloworld.o matches'的消息。 – 2012-02-17 11:52:06

+0

謝謝,最後readelf -s和objdump -T做到了! – fazineroso 2012-02-17 12:22:37

+0

['objdump'](http://linux.die.net/man/1/objdump) – tMC 2012-02-17 18:28:00

回答

5

您可以在unix/Linux上使用nm命令。或
您可以在Windows上使用dumpbin

+0

OP並沒有詢問Windows – vitaut 2012-02-17 11:52:23

+3

@vitaut:SO可以通過Google搜索,所以在回答這個問題時沒有任何傷害標題以及帶有額外限制的完整問題。 – 2012-02-17 12:10:01

相關問題