windbg学习 gc ----j(Execute If-Else)----.if

本文详细介绍了如何在遇到特定条件断点时,利用gc命令配合表达式来执行不同命令,包括单条或多条命令的执行方式,并通过实例展示了其在调试过程中的应用。

当一个条件断点的末尾包含一个执行命令时,需要使用gc命令

例如,如果使用g (Go)命令来到达该断点,则恢复为自由执行。但是如果使用单步或跟踪来到达该断点,也会以单步或跟踪的方式来恢复执行


j Expression Command1 ; Command2
j Expression 'Command1' ; 'Command2' 

Expression 要求值的表达式。如果表达式的值是非0值,则执行 Command1 。如果表达式的值为0,则执行 Command2 Command1Expression 为非0值(TRUE)时要执行的命令字符串。可以通过在命令字符串两边加上单引号( ' ),并且以分号来分隔各个命令来一次使用多条命令。如果命令字符串是单条命令,单引号是可选的。  Command2

Expression 值为0(FALSE)时要执行的命令字符串。可以通过在命令字符串两边加上单引号( ' ),并且以分号来分隔各个命令来一次使用多条命令。如果命令字符串是单条命令,单引号是可选的。

cx=fb08
0:000> j (eax!=0) r eax; r bx
bx=0
0:000> j (eax!=0) r eax; r bx; r cx
bx=0
0:000> j (eax!=0) r eax; 'r bx; r cx'
bx=0
cx=fb08
可以看到第二条由于没有单引号,所以后面的被忽略了!


.if关键字的行为和C中的if类似

.if (Condition) { Commands 

.if (
Condition) { Commands } .else { Commands 

.if (
Condition) { Commands } .elsif (Condition) { Commands 

.if (
Condition) { Commands } .elsif (Condition) { Commands } .else { Commands } 

0:000> .if (eax>ebx){r eax}.else{r ebx; r ecx}
ebx=00000000
ecx=001dfad0



转载于:https://www.cnblogs.com/hgy413/archive/2013/05/29/3693417.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值