3

目前我正在使用一个类 Eclipse IDE 和相应的调试透视图,你们中的大多数人可能都很熟悉。在调试代码时,我经常发现自己要遍历多行代码并观察变量并仔细检查一切是否符合预期。

但是假设有这样的事情:

1. important line, e.g. generating a new object;
2. another important line, e.g. some tricky class method;
3. for (int i = 0; i < some_limit; ++i)
4.     some_array[i]++;
5. more important stuff;

显然我对第 1,2 行和第 5 行发生的事情很感兴趣(我知道这是一个糟糕的例子,但请耐心等待一段时间),但我不想遍历所有数百个(甚至数千个) ) 第 3/4 行的迭代次数。

所以,最后,我的问题是:有没有办法直接跨过 for 循环?我现在所做的是在第 5 行设置一个新断点,并在我到达第 3 行时让程序运行,我相信这不是最佳解决方案。

编辑: ks1322 提出的 Eclipse 实现称为“运行到行”,并映射到 ctrl-r

4

1 回答 1

1

使用until命令而不是next.

来自gdb 文档

继续运行,直到到达当前堆栈帧中超过当前行的源代码行。此命令用于避免多次单步执行循环。

如果您将使用until而不是next,gdb 将只跳过循环一次,这几乎正是您想要的。

于 2012-06-01T07:14:08.853 回答