一、简介
在使用dbg对目标程序进行断点调试的过程中,使用表达式设置条件断点是一个很高效的调试方法;
应用情况举例:
我们在一个大循环中设置断点时,如果只在循环100次之后才需要查看具体内存值;那常规断点就需要手动跳过100断点后才能成功断下,这样既耗时又耗力;然而在我们使用表达式后,就可以完美解决这样的情况(设置表达式使得断点再第100下断点生效即可);因此表达式的基础知识还是要了解的,特此来分享一下;
二、表达式操作符的优先级
调试器允许使用下面基本表达式,运算优先级如下:
三、表达式基本语法
调试器允许我们使用类似 C 语言的语法,可以轻松更改内存、变量、寄存器或标记;
语法一:a?=b
a :可以是任何寄存器、标记、变量或内存值
?:可以是任何非逻辑运算符
b :可以是任何被识别为表达式的内容
举例:
EAX != [EBX]:将EAX的值与[EBX]的值进行逻辑非运算后,将结果存入EAX寄存器
语法一:a++、a--
a :可以是任何寄存器、标记、变量或内存值
举例:
EAX++:将EAX的值加一后存入EAX寄存器;