生活随笔
收集整理的這篇文章主要介紹了
windbg调试命令2(!gle、g、p)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
!gle 擴(kuò)展顯示當(dāng)前線程的最后一個(gè)錯(cuò)誤碼。
這個(gè)太好記了,getlasterror取首字母:
0:002>?!gle??
LastErrorValue:?(Win32)?0?(0)?-?<Unable?to?get?error?code?text>??LastStatusValue:?(NTSTATUS)?0?-?STATUS_WAIT_0?? 0:002> !gle
LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
LastStatusValue: (NTSTATUS) 0 - STATUS_WAIT_0
-all 顯示目標(biāo)系統(tǒng)中每個(gè)用戶模式線程的最終錯(cuò)誤。如果在用戶模式下省略該參數(shù),調(diào)試器顯示當(dāng)前線程的最終錯(cuò)誤。如果內(nèi)核模式下省略該參數(shù),調(diào)試器顯示當(dāng)前的寄存器上下文指定的線程的最終錯(cuò)誤。
0:002>?!gle??
LastErrorValue:?(Win32)?0?(0)?-?<Unable?to?get?error?code?text>??LastStatusValue:?(NTSTATUS)?0?-?STATUS_WAIT_0??0:002>?!gle?-all??Last?error?for?thread?0:??LastErrorValue:?(Win32)?0?(0)?-?<Unable?to?get?error?code?text>??LastStatusValue:?(NTSTATUS)?0xc0000135?-?{????Last?error?for?thread?1:??LastErrorValue:?(Win32)?0?(0)?-?<Unable?to?get?error?code?text>??LastStatusValue:?(NTSTATUS)?0?-?STATUS_WAIT_0????Last?error?for?thread?2:??LastErrorValue:?(Win32)?0?(0)?-?<Unable?to?get?error?code?text>??LastStatusValue:?(NTSTATUS)?0?-?STATUS_WAIT_0?? 0:002> !gle
LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
LastStatusValue: (NTSTATUS) 0 - STATUS_WAIT_0
0:002> !gle -all
Last error for thread 0:
LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
LastStatusValue: (NTSTATUS) 0xc0000135 - {Last error for thread 1:
LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
LastStatusValue: (NTSTATUS) 0 - STATUS_WAIT_0Last error for thread 2:
LastErrorValue: (Win32) 0 (0) - <Unable to get error code text>
LastStatusValue: (NTSTATUS) 0 - STATUS_WAIT_0
!gle擴(kuò)展顯示GetLastError的值并嘗試解碼它。
?
?g
g(go)命令開始指定進(jìn)程或線程的執(zhí)行。這種執(zhí)行將會(huì)在程序結(jié)束、遇到BreakAddress 或者其他造成調(diào)試器停止的事件發(fā)生時(shí)停止。
這個(gè)我們太經(jīng)常用到了,
1>.如果直接用g不帶參數(shù),表示無條件恢復(fù)調(diào)試目標(biāo)的執(zhí)行
2.>g Address,相當(dāng)于設(shè)了一個(gè)一次性斷點(diǎn),然后將調(diào)試目標(biāo)執(zhí)行到斷點(diǎn)
3>gu 用于使調(diào)試目標(biāo)執(zhí)行完當(dāng)前函數(shù)并且返回到調(diào)用者,由于這個(gè)命令知道當(dāng)前的棧指針,因此它可以從遞歸函數(shù)調(diào)用中返回
?
在用戶態(tài)調(diào)試中,都可以通過~線程號(hào) 來指定某個(gè)線程的執(zhí)行命令,所有其他線程都被凍結(jié)狀態(tài),
比如:
0:002>?~0?g??
System?0:?2?of?3?threads?are?frozen?? 0:002> ~0 g
System 0: 2 of 3 threads are frozen
windbg提示,3個(gè)線程中的兩個(gè)被凍結(jié)了,只有0號(hào)線程是運(yùn)行狀態(tài)
?
p
p命令執(zhí)行一條指令或者一行源碼,并且選擇性的顯示所有寄存器和標(biāo)志位的結(jié)果
這個(gè)比較好記,用過vs的都知道F10是單步調(diào)試(Step Over),這個(gè)的快捷鍵就是F10
不介紹了,最常用的,
轉(zhuǎn)載于:https://www.cnblogs.com/guanlaiy/archive/2012/12/18/2822881.html
總結(jié)
以上是生活随笔為你收集整理的windbg调试命令2(!gle、g、p)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。