【发布时间】:2012-11-07 21:53:38
【问题描述】:
(我正在编写调试器。但我的疑问也是从调试器用户的角度来看的)
许多语言(GDB、Eclipse)的许多调试器都实现了允许一次执行一条语句的 STEP_OVER 命令;与 STEP_INTO 的不同之处在于它不执行堆栈中的降级(即,调用函数),这通常是一件好事。
10 : y = f1(x);
11 : z = y + 1;
现在,假设我越过了上面的第 10 行,但是在函数 f1 内遇到了一个断点(可能在调用堆栈的深处有好几层)。不清楚当我恢复时会发生什么:调试器是否应该在第 11 行暂停(实际上是“完成单步执行”命令)?还是应该忘记它?我相信大多数(全部?)调试器都是后者。这是标准/预期的行为吗?我自己发现这有点令人沮丧。有没有办法(在某些调试器中)从内部断点恢复执行到外部跨步语句?或者有什么方法可以忽略断点?
【问题讨论】:
标签: debugging