使用条件表达式设置断点
在GDB中,可以通过break命令结合if关键字设置条件断点。语法如下:
break [位置] if [条件]
例如,在main.c的第15行设置一个当变量x等于5时触发的断点:
break main.c:15 if x == 5
为已有断点添加条件
若已存在断点,可通过condition命令为其附加条件。语法为:
condition [断点编号] [条件]
例如,为断点1添加条件i > 10:
condition 1 i > 10
移除条件则直接省略条件部分:
condition 1
使用复杂条件表达式
条件可以是任意有效的编程语言表达式,支持逻辑运算符和函数调用。例如:
break foo if (x % 2 == 0) && (strcmp(name, "test") == 0)
查看和修改断点条件
- 使用
info breakpoints查看所有断点及其条件。 - 通过
commands命令为断点添加触发后执行的命令序列:
commands [断点编号]
> print x
> continue
> end
注意事项
- 条件表达式中的变量必须在断点位置可见,否则会报错。
- 频繁触发的条件可能显著降低调试性能,建议仅在必要时使用。

1597

被折叠的 条评论
为什么被折叠?



