天天看點

72.windbg-指令行選項(command-line options)

  • 清單内容
WinDbg的快捷方式屬性中的“目标(T)”欄裡輸入參數可以執行不同的指令,如前面提到的VM雙機調試

特别注意

除了-j 之外所有指令行參數都是大小寫敏感的
  1. -aExtension

    設定預設的擴充DLL。預設值為kdextx86.dll或kdexts.dll。在”a”之後不能加入空格,并且不能包含.dll 擴充名。

  2. -b

    (僅ring0模式) 該選項有兩個作用:

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

    2.重起之後,一旦核心初始化完成,調試器就中斷目标機

  3. -c “command”

    指定啟動時運作的初始調試器指令。該指令必須用引号括起來。多條指令可以使用分号來分隔。

    如cmdtree可以使用以下指令自動加載

    “C:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe” -c”.cmdtree c:\cmdtree\cmdtree.txt”
  4. -d

    (僅核心模式) 重起之後,在完成核心子產品加載時調試器就中斷目标機。(該斷點比-b 選項的斷點更早)

  5. -e Event

    通知調試器指定的事件發生。該選項僅在程式設計啟動調試器時使用。

  6. -ee {masm|c++}

    設定預設的表達式求值器。如果指定masm,則使用MASM表達式文法。如果指定C++,則使用C++文法。如果省略-ee選項,預設使用MASM表達式文法

  7. -failinc

    訓示調試器忽略任何可疑的符号。調試使用者模式或核心模式minidump檔案時,該選項也可以避免調試器加載任何映像不能被映射的子產品的符号

  8. -g

    (僅使用者模式) 忽略目标應用程式中的初始斷點。該選項使得目标程式在啟動後或者WinDbg附加之後繼續運作,除非設定了其他斷點。

  9. -G

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

  10. -I[S]

    将WinDbg安裝為即時調試器。操作完成後,會顯示成功或失敗的資訊。如果指定了S ,成功不會有任何資訊,隻有失敗會顯示資訊。

  11. -IA[S]

    在系統資料庫中将WinDbg和.dmp、.mdmp和.wew擴充名關聯起來。操作完成後,會顯示成功或失敗的資訊。如果指定了S ,成功不會有任何資訊,隻有失敗會顯示資訊。進行這種關聯後,輕按兩下帶有這些擴充名的檔案會啟動WinDbg。

  12. -i ImagePath

    指定産生錯誤的可執行檔案的位置。如果該路徑包含空格,需要用引号括起來

  13. -j

    允許日志。

  14. -log{o|a} LogFile

    将日志記錄到日志檔案中。如果指定檔案已存在,使用-logo 時會被覆寫,使用-loga 時會将新内容添加到後面。

  15. -remote ClientTransport

    建立一個調試用戶端,并連接配接到已經運作的調試伺服器上。

  16. -lsrcpath

    為遠端用戶端設定本地源碼路徑。使用該選項時指令行中必須有-remote。

  17. -n

    詳細符号加載:啟用符号處理器的詳細輸出

  18. -noinh

    (僅使用者模式) 阻止調試器建立的程序繼承調試器的句柄。

  19. -noprio

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

  20. -noshell

    禁止任何.shell 指令。這種阻止隻要調試器還在運作就會持續,即使開始了新的調試會話。

  21. -o Path

    (僅使用者模式) 調試所有由目标程序建立的程序(子程序)。預設情況下,調試的目标程序建立的子程序是正常運作的。

    如調試多程序exe:

    “c:\windbg.exe” -o d:\MuiltiProcessTab.exe

    則每生成一個新的子程序,windbg會自動斷下,如下圖

    72.windbg-指令行選項(command-line options)
    自己通過|和~來切換程序和線程
  22. -p PID

    指定要調試程序的十進制程序ID。這用于調試已運作的程序。

  23. -pd

    (Windows XP和之後的系統,僅使用者模式) 指定在結束調試會話時目标程式不會被終止。

  24. -pn Name

    指定被調試程序的名字。(該名字必須是唯一的。)這用來調試一個已經在運作的程序

  25. -pr

    (Windows XP和之後的系統,僅使用者模式) 是的調試器在附加到目标程序時讓它運作。這在程式已經被挂起并且想恢複它的執行時有用。

  26. -pt Seconds

    指定中斷逾時時間,以秒為機關。預設為30

  27. -pv

    (僅使用者模式) 指定調試器應該以非侵入的方式附加到目标程序。

  28. -robp

    這使得WinDbg可以在隻讀的記憶體頁面上設定斷點。(預設情況下這種操作會失敗。)

  29. -secure

    激活安全模式。

  30. -ses

    使得調試器對所有符号檔案進行嚴格的比對并忽略任何有問題的符号。

  31. -sflags 0xNumber

    一次設定所有的符号處理器。Number 應該是以0x 開頭的16進制數 — 不帶0x 的10進制數也可以使用,但是由于符号選項是二進制标志,是以推薦使用16進制。該選項應該小心使用,因為它會覆寫所有預設的符号處理器。

  32. -snc

    使得調試器關閉C++轉換。

  33. -snul

    禁止為有問題的名字自動加載符号。

  34. -srcpath SourcePath

    指定源檔案搜尋路徑。用分号(;)分隔多個路徑。如果路徑包含空格,需要用引号括起來

  35. -sup

    使得符号處理器每次搜尋符号時都搜尋公有符号表。

  36. -T Title

    設定WinDbg視窗标題。

  37. -v

    啟用調試器的詳細輸出。

  38. -y SymbolPath

    指定符号搜尋路徑。使用分号(;)分隔多個路徑。如果該路徑包含空格,應該使用引号括起來

    這個也是非常有用的, 相當于使用了.sympath,注意不是使用.symfix+,後者會加入微軟公用伺服器
  39. -z DumpFile

    指定要調試的崩潰轉儲檔案名。如果路徑和名字包含空格,必須使用引号括起來。可以通過包含多個-z選項,每個後跟不同的DumpFile值來一次打開幾個dump檔案。

-y c:\mysymbol -c”.cmdtree C:\CMDTREE\cmdtree\cmdtree.txt”