在上一篇中,敘述了多種斷點類型以及設置斷點的命令。在這一節(jié)中,主要講解各種改變上下文的指令。這些指令包括單步步入,單步不步入,運行指令。
t(Trace) 單步步入
t 命令執(zhí)行單條指令或源碼行,并選擇性的顯示所有寄存器和標志位的結果。當發(fā)生子過程調(diào)用或中斷時,它們的每一步也會被跟蹤。
用戶模式
[~Thread] t [r] [= StartAddress] [Count] ["Command"]
內(nèi)核模式
t [r] [= StartAddress] [Count] ["Command"]
ta 命令執(zhí)行到指定的地址
用戶模式
[~Thread] ta [r] [= StartAddress] StopAddress
內(nèi)核模式
ta [r] [= StartAddress] StopAddress
tb 命令執(zhí)行程序直到遇到分支指令
tb [r] [= StartAddress] [Count]
tc命令執(zhí)行程序直到到達call指令。
用戶模式
[~Thread] tc [r] [= StartAddress] [Count]
內(nèi)核模式
tc [r] [= StartAddress] [Count]
tct 命令執(zhí)行程序直到遇到call指令或return指令。
用戶模式
[~Thread] tct [r] [= StartAddress] [Count]
內(nèi)核模式
tct [r] [= StartAddress] [Count]
th 命令繼續(xù)執(zhí)行程序直到到達任何種類的分支指令,包括條件或非條件跳轉(zhuǎn)、調(diào)用、返回和系統(tǒng)調(diào)用。
用戶模式
[~Thread] th [r] [= StartAddress] [Count]
內(nèi)核模式
th [r] [= StartAddress] [Count]
tt 命令執(zhí)行程序直到遇到return指令。
用戶模式
[~Thread] tt [r] [= StartAddress] [Count]
內(nèi)核模式
tt [r] [= StartAddress] [Count]
P (STEP)單步不步入
p 命令執(zhí)行一條指令或者一行源碼,并且選擇性的顯示所有寄存器和標志位的結果。當發(fā)生子函數(shù)調(diào)用或中斷時,他們被當作單獨的一步。
用戶模式
[~Thread] p [r] [= StartAddress] [Count] ["Command"]
內(nèi)核模式
p [r] [= StartAddress] [Count] ["Command"]
pa命令執(zhí)行程序直到到達指定地址,每一步都會被顯示出來。
用戶模式
[~Thread] pa [r] [= StartAddress] StopAddress ["Command"]
內(nèi)核模式
pa [r] [= StartAddress] StopAddress ["Command"]
pc執(zhí)行程序直到到達一條call指令。
用戶模式
[~Thread] pc [r] [= StartAddress] [Count]
內(nèi)核模式
pc [r] [= StartAddress] [Count]
pct 命令執(zhí)行程序,直到遇到call指令或返回指令。
用戶模式
[~Thread] pct [r] [= StartAddress] [Count]
內(nèi)核模式
pct [r] [= StartAddress] [Count]
ph命令執(zhí)行程序直到遇到任何種類的分支指令,包括條件或非條件跳轉(zhuǎn)、調(diào)用、返回和系統(tǒng)調(diào)用。
用戶模式
[~Thread] ph [r] [= StartAddress] [Count]
內(nèi)核模式
ph [r] [= StartAddress] [Count]
pt 命令執(zhí)行程序直到遇到返回指令。
用戶模式
[~Thread] pt [r] [= StartAddress] [Count] ["Command"]
內(nèi)核模式
pt [r] [= StartAddress] [Count] ["Command"]
g (Go)
命令開始指定進程或線程的執(zhí)行。這種執(zhí)行將會在程序結束、遇到BreakAddress 或者其他造成調(diào)試器停止的事件發(fā)生時停止。
用戶模式語法
[~Thread] g[a] [= StartAddress] [BreakAddress ... [; BreakCommands]]
內(nèi)核模式語法
g[a] [= StartAddress] [BreakAddress ... [; BreakCommands]]
gc 命令使用和遇到斷點時一樣的方式(單步、跟蹤或自由執(zhí)行)來從一個條件斷點恢復執(zhí)行。也就是原來是pt,則現(xiàn)在還是pt. 常用于條件斷點中,關于條件斷點,以后會講。
gh命令將給定線程的異常標識為已處理,并且允許該線程從產(chǎn)生異常的指令繼續(xù)執(zhí)行。
用戶模式語法
[~Thread] gh[a] [= StartAddress] [BreakAddress ... [; BreakCommands]]
內(nèi)核模式語法
gh[a] [= StartAddress] [BreakAddress ... [; BreakCommands]]
gn和gN 命令繼續(xù)給定線程的執(zhí)行,但是不將異常標記為已處理。這樣使得應用程序的異常處理器可以處理該異常。
用戶模式語法
[~Thread] gn[a] [= StartAddress] [BreakAddress ... [; BreakCommands]]
[~Thread] gN[a] [= StartAddress] [BreakAddress ... [; BreakCommands]]
內(nèi)核模式語法
gn[a] [= StartAddress] [BreakAddress ... [; BreakCommands]]
gN[a] [= StartAddress] [BreakAddress ... [; BreakCommands]]
gu命令使得目標繼續(xù)執(zhí)行直到當前函數(shù)完成。
用戶模式語法
[~Thread] gu
內(nèi)核模式語法
gu