我的C代码类似于:
int f() {
for (int i = 0; i < 100; i++) {
scanf flag;
if(flag)
scanf data1;
scanf data2;
}
}
我想仅在flag == 0
时才中断执行。我该如何设置断点(使用gdb)?
答案 0 :(得分:4)
在gdb控制台中输入
b (some_line) if flag == 0
编辑:
如果您在某行停留时无法print flag
,则可以:
- (A)您的代码是使用优化(可能)或
编译的
- (B)你有一个错误的编译器
如果是(A),请在-O0
之外添加-g3
。
如果您可以 print flag
,那么您的错误版本为GDB
。尝试升级到当前的7.0.1版本。