WinDbg命令行選項詳解

本文內容摘自:http://www.dbgtech.net/windbghelp/

如有侵權請聯繫。


WinDbg命令行選項

WinDbg命令行使用如下語法:

windbg -server ServerTransport | -remote ClientTransport ] [-lsrcpath ]
   [ -premote SmartClientTransport ] [-?] [-ee {masm|c++}] 
   [-clines lines] [-b] [-d] [-aExtension] [-e Event
   [-failinc] [-g] [-G] [-hd] [-j] [-n] [-noshell] [-o
   [-Q | -QY] [-QS | -QSY] [-robp] [-secure] [-ses] [-sdce
   [-sicv] [-sins] [-snc] [-snul] [-sup] [-sflags 0xNumber
   [-T Title] [-v] [-log{o|aLogFile] [-noinh
   [-i ImagePath] [-y SymbolPath] [-srcpath SourcePath
   [-k [ConnectType] | -kl | -kx ExdiOptions] [-c "command"
   [-pb] [-pd] [-pe] [-pr] [-pt Seconds] [-pv]
   [-W Workspace] [-WF Filename] [-WX] [-zp PageFile
   [ -p PID | -pn Name | -psn ServiceName | -z DumpFile | executable ] 

windbg -I[S

windbg -IU 

windbg -IA
[S]

WinDbg命令行的描述在下面內容中。除了-j 之外所有命令行參數都是大小寫敏感的。前面的連字號可以用斜槓(/)代替。

如果使用了-remote-server選項,它們必須出現在命令行中其他任何選項之前。如果指定了executable,它必須位於命令行的末尾,任何在executable 名字之後的文本都被當作可執行程序自己的命令行參數傳遞給它。

參數

-server ServerTransport創建一個可以用其他調試器訪問的調試服務器。關於可能的ServerTransport 值的說明,查看激活調試服務器。必須作爲命令行中第一個選項使用。

-remote ClientTransport創建一個調試客戶端,並連接到已經運行的調試服務器上。關於ClientTransport 可能的值的說明,查看激活調試客戶端。必須作爲命令行中第一個選項使用。

-premote SmartClientTransport創建一個靈巧客戶端,並且連接到已運行的進程服務器上。關於SmartClientTransport 的可能值的說明,查看激活靈巧客戶端

-aExtension設置默認的擴展DLL。默認值爲kdextx86.dllkdexts.dll。在"a"之後不能加入空格,並且不能包含.dll 擴展名。詳細信息和設置該選項的其他方法,查看加載調試器擴展DLL

-b(僅內核模式) 該選項有兩個作用:

1. 調試器在連接到目標機時立即中斷它。

2. 重起之後,一旦內核初始化完成,調試器就中斷目標機。查看崩潰和重起目標機獲取詳細信息和改變該狀態的其他方法。

-c "command"指定啓動時運行的初始調試器命令。該命令必須用引號括起來。多條命令可以使用分號來分隔。(如果命令列表很長,將它們寫入一個腳本文件並使用-c選項和$<, $><, $><, $$>< (Run Script File)命令可能會方便一些。)

如果正在啓動調試客戶端,該命令必須由調試服務器使用。客戶端指定的類似.lsrcpath 這樣的命令是不能使用的。

-clines lines設置進行遠程調試時可訪問的歷史命令的近似行數。詳細信息和改變該數字的其他方法,查看使用調試器命令

-d(僅內核模式) 重起之後,在完成內核模塊加載時調試器就中斷目標機。(該斷點比-b 選項的斷點更早。)查看崩潰和重起目標機獲取詳細信息和改變該狀態的其他方法。

-e Event通知調試器指定的事件發生。該選項僅在編程啓動調試器時使用。

-ee {masm|c++}設置默認的表達式求值器。如果指定masm,則使用MASM表達式語法。如果指定C++,則使用C++語法。如果省略-ee選項,默認使用MASM表達式語法。查看表達式求值獲取詳細信息。

-failinc指示調試器忽略任何可疑的符號。調試用戶模式或內核模式minidump文件時,該選項也可以避免調試器加載任何映像不能被映射的模塊的符號。詳細信息和控制該選項的其他方法,查看SYMOPT_EXACT_SYMBOLS

-g(僅用戶模式) 忽略目標應用程序中的初始斷點。該選項使得目標程序在啓動後或者WinDbg附加之後繼續運行,除非設置了其他斷點。查看初始斷點獲取詳細信息。

-G(僅用戶模式) 忽略進程終止時的最終斷點。一般情況下,在映像結束過程中調試會話會結束。該選項使得調試會話在目標終止時直接退出。

-hd(Windows XP和之後的系統,僅用戶模式) 指定使用調試堆。查看創建的進程的行爲獲取詳細信息。

-I[S]將WinDbg安裝爲即時調試器。詳細信息查看啓用即時調試。操作完成後,會顯示成功或失敗的信息。如果指定了S ,成功不會有任何信息,只有失敗會顯示信息。

-I 參數不能和其他參數一起使用。該命令不會實際啓動WinDbg,雖然WinDbg會出現一段時間。

-IA[S]在註冊表中將WinDbg和.dmp.mdmp.wew擴展名關聯起來。操作完成後,會顯示成功或失敗的信息。如果指定了S ,成功不會有任何信息,只有失敗會顯示信息。進行這種關聯後,雙擊帶有這些擴展名的文件會啓動WinDbg。

-IA 參數不能和其他參數一起使用。該命令不會實際啓動WinDbg,雖然WinDbg會出現一段時間。

-i ImagePath指定產生錯誤的可執行文件的位置。如果該路徑包含空格,需要用引號括起來。詳細信息和改變該路徑的其他方法,查看可執行映像路徑

-j允許日誌。

-k [ConnectType](僅內核模式) 開始一個內核調試會話。詳細信息查看選擇內核調試設置。如果-k沒有和後面的ConnectType一起使用,則必須是命令行的最後一個部分。

-kl(Windows XP和之後的系統,僅內核模式) 在調試器同一臺機器上啓動一個內核調試會話。詳細信息查看附加到目標機(內核模式)

-kx ExdiOptions(僅內核模式) 使用EXDI 驅動來啓動一個內核調試會話。EXDI驅動在本文檔中沒有描述。如果擁有硬件探測器或硬件仿真器的EXDI接口,請聯繫Microsoft獲得調試信息。

-log{o|a} LogFile將日誌記錄到日誌文件中。如果指定文件已存在,使用-logo 時會被覆蓋,使用-loga時會將新內容添加到後面。更多信息,查看使用日誌文件

-lsrcpath爲遠程客戶端設置本地源碼路徑。使用該選項時命令行中必須有-remote

-n詳細符號加載:啓用符號處理器的詳細輸出。關於控制該選項的其他方法,查看SYMOPT_DEBUG

-noinh(僅用戶模式) 阻止調試器創建的進程繼承調試器的句柄。關於控制該選項的其他方法,查看創建新進程(用戶模式)

-noprio阻止任何權限的改變。該選項激活時會阻止WinDbg獲得CPU時間的優先權。

-noshell禁止任何.shell 命令。這種阻止只要調試器還在運行就會持續,即使開始了新的調試會話。詳細信息和禁用.shell 命令的其它方法,查看使用Shell命令

-o(僅用戶模式) 調試所有由目標進程創建的進程(子進程)。默認情況下,調試的目標進程創建的子進程是正常運行的。控制該選項的其他方法,查看創建新進程(用戶模式)

-p PID指定要調試進程的十進制進程ID。這用於調試已運行的進程。詳細信息,查看附加到運行中的進程(用戶模式)

-pb(Windows XP和之後的系統,僅用戶模式) 在附加到目標進程時,阻止調試器要求初始斷點。這在程序已經掛起或者不想在目標中創建中斷線程(break-in thread)時有用。查看附加到運行中的進程(用戶模式)

-pd(Windows XP和之後的系統,僅用戶模式) 指定在結束調試會話時目標程序不會被終止。查看結束調試會話獲取詳細信息。

-pe(Windows XP和之後的系統,僅用戶模式) 指示目標程序已經在被調試了。查看重新附加到目標程序獲取詳細信息。

-pn Name指定被調試進程的名字。(該名字必須是唯一的。)這用來調試一個已經在運行的進程。詳細信息,查看附加到運行中的進程(用戶模式)

-pr(Windows XP和之後的系統,僅用戶模式) 是的調試器在附加到目標進程時讓它運行。這在程序已經被掛起並且想恢復它的執行時有用。查看附加到運行中的進程(用戶模式)

-psn ServiceName指示包含要調試的進程的服務名。這在進程已經運行的情況下使用。詳細信息查看附加到運行中的進程(用戶模式)

-pt Seconds指定中斷超時時間,以秒爲單位。默認爲30。查看控制目標獲取詳細信息。

-pv(僅用戶模式) 指定調試器應該以無侵入的方式附加到目標進程。詳細信息,查看非侵入式調試(用戶模式)

-Q禁止"Save Workspace?"對話框。工作空間不會被自動保存。查看使用工作空間獲取詳細信息。

-QS禁止"Reload Source?" 對話框。源文件不會被自動重新加載。

-QSY禁止"Reload Source?" 對話框並自動重新加載源文件。

-QY禁止"Save Workspace?"並自動保存工作空間。查看使用工作空間獲取詳細信息。

-robp這使得WinDbg可以在只讀的內存頁面上設置斷點。(默認情況下這種操作會失敗。)

-sdce使得調試器在加載符號時顯示File access error 對話框。詳細信息和控制該選項的其他方法,查看SYMOPT_FAIL_CRITICAL_ERRORS

-secure激活安全模式

-ses使得調試器對所有符號文件進行嚴格的匹配並忽略任何有問題的符號。詳細信息和控制該選項的其他方法,查看SYMOPT_EXACT_SYMBOLS

-sflags 0xNumber一次設置所有的符號處理器。Number 應該是以0x 開頭的16進制數 — 不帶0x的10進制數也可以使用,但是由於符號選項是二進制標誌,所以推薦使用16進制。該選項應該小心使用,因爲它會覆蓋所有默認的符號處理器。詳細信息,查看設置符號選項

-sicv使得符號處理器忽略CV記錄。詳細信息和控制該選項的其他方法,查看SYMOPT_IGNORE_CVREC

-sins使得調試器忽略環境變量中的符號路徑和可執行映像路徑。詳細信息查看SYMOPT_IGNORE_NT_SYMPATH

-snc使得調試器關閉C++轉換。詳細信息和控制該選項的其他方法,查看SYMOPT_NO_CPP

-snul禁止爲有問題的名字自動加載符號。詳細信息和控制該選項的其他方法,查看SYMOPT_NO_UNQUALIFIED_LOADS

-srcpath SourcePath指定源文件搜索路徑。用分號(;)分隔多個路徑。如果路徑包含空格,需要用引號括起來。詳細信息和其他改變該路徑的方法,查看源碼路徑

-sup使得符號處理器每次搜索符號時都搜索公有符號表。詳細信息和控制該選項的其他方法,查看SYMOPT_AUTO_PUBLICS

-T Title設置WinDbg窗口標題。

-v啓用調試器的詳細輸出。

-W Workspace加載名字給定的工作空間。如果名字空間名包含空格,需要用引號括起來。如果不存在這個名字的工作空間,則可以選擇創建新的工作空間或放棄加載。詳細信息查看使用工作空間

-WF Filename從指定文件加載工作空間。Filename 需要包含文件名和擴展名(通常是.wew)。如果名字空間名包含空格,需要用引號括起來。如果不存在這個名字的工作空間,則可以選擇創建新的工作空間或放棄加載。詳細信息查看使用工作空間

-WX禁止自動加載工作空間。詳細信息查看使用工作空間

-y SymbolPath指定符號搜索路徑。使用分號(;)分隔多個路徑。如果該路徑包含空格,應該使用引號括起來。詳細信息和其他修改這個路徑的方法,查看符號路徑

-z DumpFile指定要調試的崩潰轉儲文件名。如果路徑和名字包含空格,必須使用引號括起來。可以通過包含多個-z選項,每個後跟不同的DumpFile值來一次打開幾個dump文件。詳細信息,查看使用WinDbg分析用戶模式Dump文件使用WinDbg分析內核模式Dump文件

-zp PageFile指定被修改過的頁面文件的名字。這在調試dump文件並想使用.pagein (Page In Memory)命令時很有用。

-zp 不能使用標準的Windows頁面文件 — 只有特殊修改過的頁面文件可以使用。executable指定可執行進程的命令行。這用於創建一個新進程並調試它。它應該作爲命令行的最後一項。所有在可執行文件名之後的文本都被作爲參數字符串傳遞給可執行文件。詳細信息,查看創建新進程(用戶模式)-?彈出本HTML幫助窗口。

通過命令行運行調試器時,在目標程序名後面指定傳遞給它的參數。例如:

windbg myexe arg1 arg2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章