2012-02-28 28 views
3

我正在尋找一種方便的方法(用於構建測試腳本)來查詢對象文件中的各個符號。有沒有一種工具可以回答問題(最好是通過退出狀態)「文件Y中是否存在符號X?」或者我是否需要分析nm(1)的輸出,例如與grep和適當的正則表達式?如果這樣的工具可以提供有關符號(大小,類型,值,...)的詳細信息,那更好。是否有工具可以獲取ELF .o或可執行文件中特定符號的信息?

回答

5

對於可執行文件/共享庫,請給readelfObjdump查看一下,它們可以轉儲一個您應該能夠grep的二進制符號(mangled或unmangled)。

他們的來源是容易得到的,所以你很可能taloir它們分解成簡單的工具,手頭的任務或直接導入自己的代碼庫(不是你真的需要,你可以只與有問題加載的二進制,dlopen並使用dlsym來檢查符號是否存在)。

Objdump面向二進制文件,nm和readelf將讀取精靈對象文件。

+0

nm處理目標文件 - 我不明白你在「二進制文件」和「目標文件」之間的區別在這裏。 – Perry 2012-02-28 23:29:38

+0

@Perry:好的,當我做出這個回覆時,我並沒有太專注(因此,可怕的語法:|) – Necrolis 2012-02-29 06:58:59

0

您可以直接使用libbfd,但通過API瀏覽,如何直接獲取所需的信息並不明顯。

+0

*自我也會想到,如果ELF是你擔心的一切。 – 2012-02-28 16:53:34

相關問題