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