1 通用格式
break file:line if condition
condition的格式:变量名 条件运算符 常量,比如 if i == 3
2 例
#include
int main(int argc, char* argv[])
{
int i = 0;
for (i = 1; i < 7; i++)
{
printf("%d\n", i);
}
return 0;
}
(gdb)break main.c:6 if i == 5
(gdb)c
1
2
3
4
Breakpoint 1, main() at main.c:6
6 printf("%d\n", i);
3 condition的来源
第一,在没有设置断点的条件的时候,当程序到达断点的时候,我们会得到一些变量和变量的一些值;
第二,我们可以利用这些变量和值构造条件,使得只有满足一定条件的时候,断点才能断住,很简单,gdb在决定要不要断住前会去检查这些值,这些值可以是栈变量也可以是全局变量。