VS2010中dumpbin工具的使用

2021-08-31 09:14:47 字數 3179 閱讀 2954

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!

用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:此選項顯示檔案頭和每節的頭。當用於庫時,顯示每個成員物件的頭。

(10)、/linenumbers:此選項顯示coff行號。如果物件檔案是用程式資料庫(/zi)、c7相容(/z7)或僅限行號(/zd)編譯的,則它包含行號。如果可執行檔案或dll是與生成除錯資訊(/debug)鏈結的,則它包含coff行號。

(11)、/linkermember[:]:此選項顯示庫中定義的公共符號。指定引數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[:[,number]]:此選項顯示檔案中每節的原始內容。引數說明:1,預設值,內容以十六進製制位元組顯示,如果內容具有列印的表示形式,則還顯示為ascii字元;2,內容顯示為十六進製制的2位元組值;4,內容顯示為十六進製制的惡4位元組值;8,內容顯示為十六進製制的8位元組值;none,取消顯示原始資料,此引數對控制/all輸出很有用;number,顯示的行被設定為每行具有number個值的寬度。

(16)、/relocations:此選項顯示物件或影象中的任何重定位。

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

(18)、/summary:此選項顯示有關節的最少資訊(包括總大小)。如果未指定其它選項,則此選項為預設值。

(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

參考文獻:

給我老師的人工智慧教程打call!

如何提高VS2010的效能,VS2010不再卡

教大家幾個技巧可以稍微讓你覺得它沒那麼卡!一 vs2010選項視覺體驗設定 工具 選項 環境 視覺體驗的勾選都去掉。不解釋,你懂得。不過還是建議開啟硬體加速 二 禁用intellisense 工具 選項 文字編輯器 c c 高階 禁用intellisense設為true 這個功能很好用。相較於vis...

說說VS2010中的外掛程式

我想大家在用vs的時候,一定有覺得vs很彆扭的地方。比如說,我們在用c 程式設計的時候,會為裡面的 和 感到特別的不舒服,也讓我們的程式設計感到很不愉快。不知道大家在用什麼好用的外掛程式,如果覺得不錯的,可以提供給大家,我們一起學習!它的功能很強大,我也是剛剛接觸,有好多的功能還認識不清,我這裡就當...

vs2010中靜態呼叫dll

在網上搜尋良久,關於靜態呼叫dll的方式講解的都不是很清楚。通過自己摸索,結合網上提供的一些方法,現在總結兩種靜態呼叫dll的方法。一 同一解決方案下面靜態呼叫dll 當我們建立了乙個dll的工程,此工程的預設輸出目錄是在 solutiondir configuration 而此解決方案中,生成.e...