你可以为一般的值变化、特定的值、读取或写入时来设置监察点。
更改断点和监察点
输入 info watchpoints
打印先前设置的监察点列表:
删除断点和监察点
如你所见,监察点就是数字。要删除特定的监察点,请先输入 delete
后输入监察点的编号。例如,我的监察点编号为 2;要删除此监察点,输入delete 2
。
注意:如果你使用delete
而没有指定数字,所有监察点和断点将被删除。
这同样适用于断点。在下面的截屏中,我添加了几个断点,输入 info breakpoint
打印断点列表:
要删除单个断点,请先输入 delete
后输入断点的编号。另外一种方式:你可以通过指定断点的行号来删除断点。例如,clear 78
命令将删除第 78 行设置的断点号 7。
禁用或启用断点和监察点
除了删除断点或监察点之外,你可以通过输入 disable
,后输入编号禁用断点或监察点。在下文中,断点 3 和 4 被禁用,并在代码窗口中用减号标记:
也可以通过输入类似 disable 2 - 4
修改某个范围内的断点或监察点。如果要重新激活这些点,请输入enable
,然后输入它们的编号。
条件断点
首先,输入 delete
删除所有断点和监察点。你仍然想使程序停在main
函数处,如果你不想指定行号,可以通过直接指明该函数来添加断点。输入break main
从而在main
函数处添加断点。
输入 run
从头开始运行程序,程序将在main
函数处停止。
main
函数包括变量n_state_3_count
,当状态机达到状态 3 时,该变量会递增。
基于 n_state_3_count
的值添加一个条件断点,请输入:
break 54 if n_state_3_count == 3