GDB:跳过循环迭代

问题描述 投票:0回答:3

如何使用 GDB 跳过 n 次迭代?我正在尝试调试 for 循环,并且想要进入迭代 703,而无需输入接下来的 703 次。

注意:我想留在循环中,只是跳过 n 次迭代。

谢谢!

debugging gdb visual-studio-debugging
3个回答
2
投票

我找到了解决方案:

考虑这段代码:

for(int i = 0; i < 1000; i++) {
    printf("%d\n",i);
}

在 GDB 中,您必须输入: 'break n' (其中 n 是 'for' 循环的行号),然后输入 'c x' - 其中 x 是您想要跳过循环的次数.


1
投票

尝试断点计数:https://sourceware.org/gdb/onlinedocs/gdb/Conditions.html

(gdb) ignore bnum count

设置断点号bnum的忽略计数为count。下一个计数到达断点时,程序的执行不会停止;除了减少忽略计数之外,GDB 不采取任何操作。


0
投票

我通常在断点上设置条件。

(gdb) break <line> if i == 703
© www.soinside.com 2019 - 2024. All rights reserved.