win7系統(tǒng)下載
當(dāng)前位置: 首頁 > 編程軟件教程 > 詳細頁面

windbg 64位 -windows調(diào)試工具-windbg 64位 下載 v6.12.2.633官方正式版

windbg 64位 -windows調(diào)試工具-windbg 64位 下載 v6.12.2.633官方正式版
  • 軟件大。翰榭
  • 軟件語言:簡體中文
  • 授權(quán)方式:免費軟件
  • 更新時間:2023-07-28
  • 軟件類型:國產(chǎn)軟件
  • 推薦星級:
  • 運行環(huán)境:XP,Win7,Win8,Win10,Win11
軟件介紹
分享到: 0

windbg是在windows平臺下,強大的用戶態(tài)和內(nèi)核態(tài)調(diào)試工具。相比較于Visual Studio,它是一個輕量級的調(diào)試工具,所謂輕量級指的是它的安裝文件大小較小,但是其調(diào)試功能,卻比VS更為強大。它的另外一個用途是可以用來分析dump數(shù)據(jù)。

windbg名稱熱鍵用途

CommandAtl+1輸入命令、顯示命令結(jié)果和調(diào)試信息輸出
WatchAlt+2觀察指令全局變量、局部變量和寄存器的信息
LocalsAlt+3自動顯示當(dāng)前函數(shù)的所有局部變量
RegistersAtl+4觀察和修改寄存器的值
MemoryAlt+5觀察和修改內(nèi)存數(shù)據(jù)
CallStackAlt+6棧中記錄的函數(shù)調(diào)用序列
DisassemblyAlt+7反匯編
ScratchPadAlt+8白板,可以用來做調(diào)試筆記等
ProcessesandThreadsAlt+9顯示所有調(diào)試目標(biāo)的列表,包括進程和線程等
CommandBrowserAlt+N執(zhí)行和瀏覽命令
在彈出需要的窗口后,就可以對窗口進行排列。通過鼠標(biāo)拖曳窗口或結(jié)合右擊窗口標(biāo)題選擇Dock(停靠)和Alwaysfloating(保持浮動),可以把窗口擺放成最適合我們工作的位置。

WinDbg入門

WinDbg是Windows調(diào)試工具中包含的內(nèi)核模式和用戶模式調(diào)試器。在這里,我們提供了動手練習(xí),可以幫助您開始使用WinDbg作為用戶模式調(diào)試器。
安裝調(diào)試工具后,找到該工具的64位(x64)和32位(x86)版本的安裝目錄。例如:
C:\ Program Files(x86)\ Windows Kits \ 8.1 \ Debuggers \ x64
C:\ Program Files(x86)\ Windows Kits \ 8.1 \ Debuggers \ x86
一、啟動記事本并附加WinDbg

1.導(dǎo)航到您的安裝目錄,然后打開WinDbg.exe。
2.調(diào)試器文檔也可以在此處在線獲得。
3.在“ 文件”菜單上,選擇“ 打開可執(zhí)行文件”。在“打開可執(zhí)行文件”對話框中,導(dǎo)航到包含notepad.exe的文件夾(例如C:\ Windows \ System32)。對于“ 文件名”,輸入notepad.exe。點擊打開。

4.在WinDbg窗口底部附近的命令行中,輸入以下命令:

.sympath srv *

輸出類似于以下內(nèi)容:
dbgcmd

Symbol search path is: srv*
Expanded Symbol search path is: cache*;SRV

符號搜索路徑告訴WinDbg在哪里尋找符號(PDB)文件。調(diào)試器需要符號文件來獲取有關(guān)代碼模塊的信息(函數(shù)名稱,變量名稱等)。

輸入以下命令,告訴WinDbg進行其初始查找和符號文件的加載:

.reload

5.要查看Notepad.exe模塊的符號,請輸入以下命令:

x記事本!*

注意 如果看不到任何輸出,請再次輸入.reload。

要在Notepad.exe模塊中查看包含main的符號,請輸入以下命令:

x記事本!*主要*

輸出類似于以下內(nèi)容:
dbgcmd
000000d0`428ff7e8 00007ff6`3282122f notepad!WinMain
...

6.要在notepad!WinMain上放置一個斷點,請輸入以下命令:

bu記事本!WinMain

要驗證是否設(shè)置了斷點,請輸入以下命令:

bl
輸出類似于以下內(nèi)容:

dbgcmd

0 e 00007ff6`32825f64 0001 (0001) 0:**** notepad!WinMain

7.要啟動記事本運行,請輸入以下命令:

G

記事本將一直運行直到涉及WinMain函數(shù),然后再進入調(diào)試器。

dbgcmd

Breakpoint 0 hit
notepad!WinMain:
00007ff6`32825f64 488bc4 mov rax,rsp

要查看在記事本進程中加載的代碼模塊的列表,請輸入以下命令:

lm

輸出類似于以下內(nèi)容:

dbgcmd

0:000> lm
start end module name
00007ff6`32820000 00007ff6`3285a000 notepad (pdb symbols) C:\...\notepad.pdb
00007ffc`ab7e0000 00007ffc`ab85b000 WINSPOOL (deferred)
00007ffc`aba10000 00007ffc`abc6a000 COMCTL32 (deferred)
00007ffc`adea0000 00007ffc`adf3f000 SHCORE (deferred)
00007ffc`af490000 00007ffc`af59f000 KERNELBASE (deferred)
00007ffc`af7d0000 00007ffc`af877000 msvcrt (deferred)
00007ffc`af880000 00007ffc`b0c96000 SHELL32 (deferred)
00007ffc`b0e40000 00007ffc`b0ef7000 OLEAUT32 (deferred)
00007ffc`b0f00000 00007ffc`b0f57000 sechost (deferred)
00007ffc`b0f60000 00007ffc`b1005000 ADVAPI32 (deferred)
00007ffc`b1010000 00007ffc`b1155000 GDI32 (deferred)
00007ffc`b1160000 00007ffc`b1296000 RPCRT4 (deferred)
00007ffc`b12a0000 00007ffc`b1411000 USER32 (deferred)
00007ffc`b1420000 00007ffc`b15f6000 combase (deferred)
00007ffc`b16c0000 00007ffc`b17f9000 MSCTF (deferred)
00007ffc`b1800000 00007ffc`b189a000 COMDLG32 (deferred)
00007ffc`b18a0000 00007ffc`b18f1000 SHLWAPI (deferred)
00007ffc`b1b60000 00007ffc`b1cd8000 ole32 (deferred)
00007ffc`b1cf0000 00007ffc`b1e2a000 KERNEL32 (pdb symbols) C:\...\kernel32.pdb
00007ffc`b1eb0000 00007ffc`b1ee4000 IMM32 (deferred)
00007ffc`b1f50000 00007ffc`b20fa000 ntdll (private pdb symbols) C:\...\ntdll.pdb
要查看堆棧跟蹤,請輸入以下命令:

k

輸出類似于以下內(nèi)容:

dbgcmd

0:000> k
Child-SP RetAddr Call Site
00000048`4e0cf6a8 00007ff6`3282122f notepad!WinMain
00000048`4e0cf6b0 00007ffc`b1cf16ad notepad!WinMainCRTStartup+0x1a7
00000048`4e0cf770 00007ffc`b1fc4629 KERNEL32!BaseThreadInitThunk+0xd
00000048`4e0cf7a0 00000000`00000000 ntdll!RtlUserThreadStart+0x1d ...

8.要重新開始運行記事本,請輸入以下命令:

G

9.要打開記事本,請從“ 調(diào)試”菜單中選擇打開。

10.要在ZwWriteFile上設(shè)置和驗證斷點,請輸入以下命令:

bu ntdll!ZwWriteFile

bl

11.輸入 g 以重新啟動記事本。在記事本窗口中,輸入一些文本,然后從“ 文件”菜單中選擇“ 保存 ” 。關(guān)于ZwCreateFile,正在運行的代碼會中斷。輸入 k 以查看堆棧跟蹤。

在命令行左側(cè)的WinDbg窗口中,注意處理器和線程號。在此示例中,當(dāng)前處理器號為0,當(dāng)前線程號為11。因此,我們正在查看線程11(恰好在處理器0上運行)的堆棧跟蹤。

12.要查看“記事本”進程中所有線程的列表,請輸入以下命令(波浪號):

?

輸出類似于以下內(nèi)容:
dbgcmd

0:011> ~
0 Id: 10c8.128c Suspend: 1 Teb: 00007ff6`31cdd000 Unfrozen
1 Id: 10c8.1a10 Suspend: 1 Teb: 00007ff6`31cdb000 Unfrozen
2 Id: 10c8.1850 Suspend: 1 Teb: 00007ff6`31cd9000 Unfrozen
3 Id: 10c8.1774 Suspend: 1 Teb: 00007ff6`31cd7000 Unfrozen
4 Id: 10c8.1e80 Suspend: 1 Teb: 00007ff6`31cd5000 Unfrozen
5 Id: 10c8.10ac Suspend: 1 Teb: 00007ff6`31cd3000 Unfrozen
6 Id: 10c8.13a4 Suspend: 1 Teb: 00007ff6`31bae000 Unfrozen
7 Id: 10c8.2b4 Suspend: 1 Teb: 00007ff6`31bac000 Unfrozen
8 Id: 10c8.1df0 Suspend: 1 Teb: 00007ff6`31baa000 Unfrozen
9 Id: 10c8.1664 Suspend: 1 Teb: 00007ff6`31ba8000 Unfrozen
10 Id: 10c8.15e4 Suspend: 1 Teb: 00007ff6`31ba6000 Unfrozen
. 11 Id: 10c8.8bc Suspend: 1 Teb: 00007ff6`31ba4000 Unfrozen

在此示例中,有12個線程的索引從0到11。

13.要查看線程0的堆棧跟蹤,請輸入以下命令:

?0秒

k
輸出類似于以下內(nèi)容:
dbgcmd

0:011> ~0s
USER32!SystemParametersInfoW:
00007ffc`b12a4d20 48895c2408 mov qword ptr [rsp+8], ...
0:000> k
Child-SP RetAddr Call Site
00000033`d1e9da48 00007ffc`adfb227d USER32!SystemParametersInfoW
(Inline Function) --------`-------- uxtheme!IsHighContrastMode+0x1d
00000033`d1e9da50 00007ffc`adfb2f12 uxtheme!IsThemeActive+0x4d
...
00000033`d1e9f810 00007ffc`b1cf16ad notepad!WinMainCRTStartup+0x1a7
00000033`d1e9f8d0 00007ffc`b1fc4629 KERNEL32!BaseThreadInitThunk+0xd
00000033`d1e9f900 00000000`00000000 ntdll!RtlUserThreadStart+0x1d

14.要退出調(diào)試并從記事本進程中分離,請輸入以下命令:

d


使用編程語言寫的程序,由于每條指令都對應(yīng)計算機一個特定的基本動作,所以程序占用內(nèi)存少、執(zhí)行效率高。

[溫馨提示]:
點下面下載:(推薦使用"迅雷"進行下載,系統(tǒng)下載大全QQ交流群:)