windbg命令行選項


我們不僅可以通過GUI的方式使用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|a} LogFile] [-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 KeyString windbg -IA[S] 
下面是對windbg命令行選項的描述。除了-j之外,所有命令行選項都區分大小寫。可以用正斜杠(/)替換初始連字符。

參數:

-server 服務器傳輸

創建可由其他調試程序訪問的調試服務器。使用此參數時,它必須是命令行上的第一個參數。

-remote 客戶端

創建調試客戶端,並連接到已在運行的調試服務器。使用此參數時,它必須是命令行上的第一個參數。

-premote 智能客戶端

創建智能客戶端,並連接到已在運行的進程服務器。

-a 擴展

設置默認擴展dll。默認值為kdextx86.dll或kdexts.dll。“a”后面不能有空格,並且不能包含.dll文件擴展名。

-b
  不再支持此選項。
-c " command "

指定啟動時要運行的初始調試器命令。此命令必須用引號括起來。多個命令可以用分號分隔。(如果您有一個長的命令列表,那么將它們放在腳本中,然后將-c選項與$<、$><、$><、$><(運行腳本文件)命令一起使用可能會更容易。)如果要啟動調試客戶端,則此命令必須用於調試服務器。不允許使用客戶端特定的命令,如.lsrcpath。

-clines lines

設置可以在遠程調試期間訪問的命令歷史記錄中的命令的近似數目。

-d

(僅限內核模式)重新啟動后,加載內核模塊后,調試器將立即進入目標計算機。(此中斷早於-b選項的中斷。)

-e Event

向調試器發出指定事件已發生的信號。此選項僅在以編程方式啟動調試器時使用。

-ee { masm| c++}

設置默認表達式計算器。如果指定了MASM,則將使用MASM表達式語法。如果指定C++,則將使用C++表達式語法。如果省略-ee選項,則默認使用masm表達式語法。

-failinc
  使調試器忽略任何可疑符號。調試用戶模式或內核模式小型轉儲文件時,此選項還將阻止調試器加載圖像無法映射的任何模塊。
-g

(僅限用戶模式)忽略目標應用程序中的初始斷點。除非設置了另一個斷點,否則此選項將導致目標應用程序在啟動或windbg附加到目標應用程序之后繼續運行。

-G

(僅限用戶模式)忽略進程終止時的最終斷點。通常,調試會話在映像運行過程中結束。此選項將導致調試會話在子進程終止時立即結束。這與輸入命令sxd epr的效果相同。

-hd

(僅限用戶模式)忽略進程終止時的最終斷點。通常,調試會話在映像運行過程中結束。此選項將導致調試會話在子進程終止時立即結束。這與輸入命令sxd epr的效果相同。

-I[ S]
將windbg安裝為后期調試程序。嘗試此操作后,將顯示成功或失敗消息。如果包含S,則此過程將在成功時自動執行;僅顯示失敗消息。-I參數不能與任何其他參數一起使用。這個命令實際上不會啟動windbg,盡管windbg窗口可能會出現一會兒。
-IA[ S]
將windbg與注冊表中的文件擴展名.dmp、.mdmp和.wew關聯。嘗試此操作后,將顯示成功或失敗消息。如果包含S,則此過程將在成功時自動執行;僅顯示失敗消息。建立此關聯后,雙擊具有這些擴展名之一的文件將啟動windbg。-IA參數不能與任何其他參數一起使用。這個命令實際上不會啟動windbg,盡管windbg窗口可能會出現一會兒。
-IU KeyString
將調試器遠程處理注冊為URL類型,以便用戶可以使用URL自動啟動調試器遠程客戶端。keystring的格式為remdbgeng://remotingoption。RemotingOption是一個字符串,它按照激活調試客戶機主題中定義的傳輸協議進行定義。如果此操作成功,則不顯示任何消息;如果失敗,則顯示錯誤消息。-IU參數不能與任何其他參數一起使用。雖然一個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
為遠程客戶端設置的本地源路徑。 此選項必須遵循 -遠程命令行上。

-n
干擾符號負載:啟用從符號處理程序的詳細輸出。

-noinh
(僅限用戶模式)可以防止創建句柄繼承從調試器調試程序的進程。

-noprio
可以防止任何優先級更改。 此參數將阻止 WinDbg 讓幾個處於活動狀態時的 CPU 時間的優先級。

-noshell
禁止所有 .shell命令。 此禁止將持續的時間運行調試器,即使開始新的調試會話。

-o
(僅限用戶模式)調試啟動目標應用程序 (子進程) 的所有進程。 默認情況下,創建的一個正在調試的進程將運行它們通常要做。

-openPrivateDumpByHandle Handle
指定要調試的崩潰轉儲文件的句柄。

-p PID
指定要調試的十進制進程 ID。 這用於調試已在運行的進程。

-pb
(僅限用戶模式)防止調試器附加到目標進程時請求初始被侵入的情形。 如果應用程序已掛起,或者如果你想要避免在目標中創建被侵入的情形線程,這可以很有用。

-pd
(僅限用戶模式)導致目標應用程序不會終止調試會話結束時。 

-pe
(僅限用戶模式)指示已在調試目標應用程序。 

-pn Name
指定要調試的進程的名稱。 (此名稱必須是唯一的。)這用於調試已在運行的進程。

-pr
(僅限用戶模式)導致調試器開始運行時它將附加到它的目標進程。 如果應用程序已掛起狀態,並且您不希望繼續執行,這很有用。

-psn ServiceName
指定要調試的過程中包含的服務的名稱。 這用於調試已在運行的進程。

-pt Seconds
指定中斷超時,以秒為單位。 默認值為 30。 

-pv
(僅限用戶模式)指定調試器應 noninvasively 附加到目標進程。 

-Q
禁止顯示"保存工作區?" 對話框中指定選項。 工作區不會自動保存。

-QS
禁止顯示"重新加載源"? 對話框中指定選項。 源文件不會自動重新加載。

-QSY
禁止顯示"重新加載源"? 對話框中,會自動重新加載源文件。

-QY
禁止顯示"保存工作區?" 對話框和自動保存工作區。 

-robp
這允許 CDB 只讀內存頁上設置斷點。 (默認值是此類操作失敗。)

-sdce
使調試器顯示文件訪問錯誤符號加載過程中的消息。 

-secure
激活安全模式。

-ses
使調試器執行的所有符號文件嚴格評估,並忽略任何可疑的符號。

-sflags 0 x
一次性設置所有的符號處理程序選項。 應能帶有前綴的十六進制數0x -而無需十進制0x允許,則允許而符號選項是二進制的標志,因此建議十六進制。 應謹慎,使用此選項,因為它將替代所有符號處理程序默認值。

-sicv
導致要忽略 CV 記錄的符號處理程序。

-sins
會導致調試器忽略符號路徑和可執行文件映像路徑環境變量。

-snc
使調試器后,若要關閉C++轉換。 

-snul
禁用自動符號加載的非限定名稱。 

-srcpath SourcePath
指定源文件搜索路徑。 用分號分隔多個路徑 (;)。 如果路徑包含空格,應括在引號中。 

-sup
導致要在每個符號搜索期間搜索公共符號表的符號處理程序。 

-T Title
設置 WinDbg 窗口標題。

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

-W Workspace
加載給定的命名工作區。 如果工作區名稱包含空格,請將其括在引號中。 如果不存在此名稱的任何工作區,將為您提供具有此名稱創建新的工作區或放棄加載嘗試的選項。 

-WF Filename
從給定的文件加載工作區。 文件名應包括文件和擴展 (通常.wew)。 如果工作區名稱包含空格,請將其括在引號中。 如果存在具有此名稱沒有工作區文件,將為您提供具有此名稱創建一個新的工作區文件或放棄加載嘗試的選項。 

-WX
禁用自動工作區中加載。

-y SymbolPath
指定符號搜索路徑。 用分號分隔多個路徑 (;)。 如果路徑包含空格,應括在引號中。 

-z DumpFile
指定要調試的崩潰轉儲文件的名稱。 如果路徑和文件名稱包含空格,這必須用引號括起來。 可以通過包含多個同時打開多個轉儲文件z選項,每個后跟一個不同DumpFile值。 

-zp PageFile
指定修改的頁面文件的名稱。 如果您正在調試轉儲文件,並且想要使用,這很有用 .pagein (內存中的頁) 命令。 不能使用 -zp與標准的 Windows 頁文件--可以使用僅專門修改頁面文件。

executable
指定可執行進程的命令行。 這用於啟動新進程,並對其進行調試。 這必須是命令行上的最后一個項目。 可執行文件的名稱傳遞給可執行文件作為其參數字符串后的所有文本。

-?
此 HTML 幫助窗口將彈出。


如果使用了-remote或-server選項,則它必須出現在命令行上的任何其他選項之前。如果指定了可執行文件,它必須出現在命令行的最后;可執行文件名之后的任何文本都將作為其自己的命令行參數傳遞給可執行程序。

當從命令行運行調試器時,指定目標應用程序后應用程序的文件名稱的參數。 例如:

dbgcmd
windbg myexe arg1 arg2

 

 

 

 

 

 


免責聲明!

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



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