VS2010中dumpbin工具的使用


用VS2010生成的.obj文件、.lib庫、.dll庫、.exe執行文件,如果想查看其中這些文件或庫包含了哪些函數以及相關的信息(符號清單),可以通過VS2010自帶的dumpbin工具來完成。

         dumpbin.exe為Microsoft  COFF二進制文件轉換器,它顯示有關通用對象文件格式(COFF)二進制文件的信息。可用使用dumpbin檢查COFF對象文件、標准COFF對象庫、可執行文件和動態鏈接庫等。

         dumpbin工具只能在命令行下使用。

         雙擊C:\Program Files (x86)\Microsoft Visual Studio10.0\VC\bin\amd64 目錄下的dumpbin.exe即可查看相關信息,如圖1:

圖 1

在C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\bin目錄下也存在dumpbin.exe,打開方法:先啟動cmd,然后定位到C:\ProgramFiles (x86)\Microsoft Visual Studio 10.0\VC\bin,運行vcvars32.bat(或者直接將vcvars32.bat拖到cmd中),最后再運行dumpbin.exe即可。

         dumpbin使用方式:dumpbin  選項  文件名

其中多個選項間用空格分開,多個文件名間也用空格分開,文件名可以為后綴為.obj、.lib、.dll、.exe,如 dumpbin  /ALL/RAWDATA:NONE  /OUT:1.txt  text.obj (dmpbin /ALL /RAWDATA:NONE  test.obj >1.txt)。如果沒有給dumpbin指定任何選項,它將等同於使用了/SUMMARY參數。如果沒有指定任何輸入文件,它將列出所有的選項。

         選項說明:參數的使用可以用”-”或者”/”(如-ALL等於/ALL)后面跟選項名。有些選項可以在選項名后接”:”。使用空格或制表符(Tab)分割命令選項。選項名,關鍵字和文件名是不區分大小寫的。大多數的參數可以應用於所有的二進制文件,有少部分參數只能用於特定的文件。

(1)、/ALL :此選項顯示除代碼反匯編外的所有可用信息。使用/DISASM顯示反匯編。可以與/ALL一起使用/RAWDATA:NONE來省略文件的原始二進制詳細資料。

(2)、/ARCHIVEMEMBERS:此選項顯示有關庫成員對象的最少信息。 (3)、/CLRHEADER  file:其中file為用/clr生成的圖像文件。CLRHEADER顯示有關在任何托管程序中使用的.net頭的信息。輸出顯示.net頭及其中各節的位置和大小(以字節計算)。

(3)、/DIRECTIVES:此選項轉儲圖像中由編譯器生成的.directive節。

(4)、/DEPENDENTS:轉儲圖像從中導入函數的DLL的名稱。不要轉儲導入函數名。

(5)、/DISASM:此選項顯示代碼段的反匯編,如果出現在文件中則使用符號。

(6)、/EXPORTS:此選項顯示從可執行文件或DLL導出的所有定義。

(7)、/FPO:此選項顯示框架指針優化(FPO)記錄。

(8)、/HEADERS:此選項顯示文件頭和每節的頭。當用於庫時,顯示每個成員對象的頭。

(9)、/IMPORTS[:file]:此選項顯示導入到可執行文件或DLL的DLL列表(靜態鏈接的和延遲加載)和上述每個DLL的各個導入。可選file規范允許指定僅顯示某個DLL的導入。

(10)、/LINENUMBERS:此選項顯示COFF行號。如果對象文件是用程序數據庫(/Zi)、C7兼容(/Z7)或僅限行號(/Zd)編譯的,則它包含行號。如果可執行文件或DLL是與生成調試信息(/DEBUG)鏈接的,則它包含COFF行號。

(11)、/LINKERMEMBER[:{1|2}]:此選項顯示庫中定義的公共符號。指定參數1將按對象順序顯示符號及其偏移量。指定參數2將顯示對象的偏移量和索引號,然后按字母順序列車這些符號及每個符號的對象索引。若要兩個輸出都獲得,指定不帶數字參數的/LINKERMEMBER。

(12)、/LOADCOMFIG:此選項轉儲IMAGE_LOAD_CONFIG_DIRECTORY結構,此結構是由WindowsNT加載程序使用並在WIINNT.H中定義的可選結構。

(13)、/OUT:filename:此選項指定輸出的filename。默認情況下,DUMPBIN將信息顯示到標准輸出。

(14)、/PDBPATH[:VERBOSE]filename:filename為要為其查找匹配.pdb文件的.dll或.exe文件名。VERBOSE(可選)為報告曾嘗試在其中定位.pdb文件的所有目錄。/PDBPATH將沿調試器搜索.pdb文件的同一路徑搜索計算機,並將報告那些.pdb文件(若有)和filename中指定的文件相對應。

(15)、/RAWDATA[:{1|2|4|8|NONE}[,number]]:此選項顯示文件中每節的原始內容。參數說明:1,默認值,內容以十六進制字節顯示,如果內容具有打印的表示形式,則還顯示為ASCII字符;2,內容顯示為十六進制的2字節值;4,內容顯示為十六進制的惡4字節值;8,內容顯示為十六進制的8字節值;NONE,取消顯示原始數據,此參數對控制/ALL輸出很有用;number,顯示的行被設置為每行具有number個值的寬度。

(16)、/RELOCATIONS:此選項顯示對象或圖像中的任何重定位。

(17)、/SECTION:section:此選項限制與指定的section有關的信息的輸出。

(18)、/SUMMARY:此選項顯示有關節的最少信息(包括總大小)。如果未指定其它選項,則此選項為默認值。

(19)、/SYMBOLS:此選項顯示COFF符號表。符號表存在於所有對象文件中。而對於圖像文件,只有當它是與/DEBUG鏈接時,它才包含COFF符號表。

(20)、/UNWINDINFO:在程序圖像(例如exe和dll)中轉儲結構化異常處理(SHE)表的展開描述符。/UNWINDINFO僅適用於IA64圖像。

以上所有只有/HEADERS  DUMPBIN選項可用於由/GL編譯器選項產生的文件。

 

如果查看a.dll庫中包含哪些函數,可以使用:dumpbin /exports a.dll >1.txt

如果查看b.exe中加載了哪些動態庫,可以使用:dumpbin /imports b.exe >2.txt

如果查看c.lib中包含哪些函數,可以使用:dumpbin /all /rawdata:none c.lib >3.txt

如果查看d.obj中包含哪些函數,可以使用:dumpbin /all /rawdata:none d.obj >4.txt

 

參考文獻:http://www.cnblogs.com/lidabo/p/3482862.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM