【发布时间】:2010-02-21 01:49:21
【问题描述】:
我有一个类似的 C 代码:
int f() {
for (int i = 0; i < 100; i++) {
scanf flag;
if(flag)
scanf data1;
scanf data2;
}
}
我只想在flag == 0 时中断执行。我应该如何设置断点(使用 gdb)?
【问题讨论】:
我有一个类似的 C 代码:
int f() {
for (int i = 0; i < 100; i++) {
scanf flag;
if(flag)
scanf data1;
scanf data2;
}
}
我只想在flag == 0 时中断执行。我应该如何设置断点(使用 gdb)?
【问题讨论】:
在 gdb 控制台输入
b (some_line) if flag == 0
编辑:
如果您在 some-line 停止时无法 print flag,那么:
- (A) 您的代码经过优化编译(可能),或者
- (B) 你的编译器有问题
如果是 (A),则在 -g3 之外添加 -O0。
如果你可以print flag,那么你有一个错误版本的GDB。尝试升级到当前的 7.0.1 版本。
【讨论】:
Error in re-setting breakpoint 17: No symbol flag in current context.