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