条件断点就是当满足某种条件时才会触发的断点。 例如在循环体中,我们想查看第一万次循环的结果,显然不能一步一步运行程序,而应当在断点处设置条件。 使用流程: 1、首先需要打一个断点 2、在断点处点击设置按钮 跳出如下提示框 3、然后勾选条件,并填入断点的条件 4、开始调试,会看到断点被触发了(注意颜色和一般的断点不一样) 5、查看相关信息
在断点设置中,不仅有条件,还有操作,借助操作,我们可以打印一些信息,利用VS的这个功能,可以不用在代码中显示的写打印代码了~(当然这是有利有弊的,打印信息直接写在代码中,可以更快复现,结合宏来使用也非常方便,而这种断点操作,复现麻烦,适合用于排错)。 例如我们需要在循环体中查看值的变化,但不想写修改代码,这个时候就可以借助断点操作了。 操作流程 1、首先需要打一个断点 2、在断点处点击设置按钮 跳出如下提示框 3、勾选操作,并填入需要打印的信息 注意 {} 表示中间的是一个变量 输出结果会在输出窗口中打印
4、开始调试,会看到断点被触发了(注意颜色和一般的不一样) 如下是输出窗口的输出: 5、且断点操作可以和条件断点结合使用 输出如下: 6、VS提供的特殊变量,可以在断点操作中打印其信息 利用这些特殊变量可以很容易的获取当前程序运行的一些信息,注意其前缀都为$ 其具体含义如下:
$ADDRESS 当前指令的地址 $CALLED 调用当前函数的函数名称 $CALLSTACK 当前调用堆栈 $FILEPOS 当前文件和行位置 $FUNCTION 当前函数的名称 $PID 当前进程的ID $PNAME 当前进程的名称 $TICK 自系统运行以来的毫秒数,最大为49.7天 $TID 当前线程的ID $TNAME 当前线程的名称
例子:输出当前断点所在的文件、行位置及当前函数的名称 输出: