如何使用 GDB 跳过 n 次迭代?我正在尝试调试 for 循环,并且想要进入迭代 703,而无需输入接下来的 703 次。
注意:我想留在循环中,只是跳过 n 次迭代。
谢谢!
我找到了解决方案:
考虑这段代码:
for(int i = 0; i < 1000; i++) {
printf("%d\n",i);
}
在 GDB 中,您必须输入: 'break n' (其中 n 是 'for' 循环的行号),然后输入 'c x' - 其中 x 是您想要跳过循环的次数.
尝试断点计数:https://sourceware.org/gdb/onlinedocs/gdb/Conditions.html
(gdb) ignore bnum count
设置断点号bnum的忽略计数为count。下一个计数到达断点时,程序的执行不会停止;除了减少忽略计数之外,GDB 不采取任何操作。
我通常在断点上设置条件。
(gdb) break <line> if i == 703