如果我有以下代码:
execute(getA(), getB(), getC(), getD(), getE());
是否可以直接进入execute()
而无需先进入和退出其他每种方法?我知道我可以在execute()
的条目中设置一个断点,但是在我的代码中,这个方法在很多不同的地方被调用,而我不想对所有的调用进行排序。我也无法在入口断点上提出一个条件,因为该方法在同一个对象上被多次调用,但它只是一个特定的调用,而我是一个特定的调用。我很感兴趣。
答案 0 :(得分:2)
您可以使用单步进入选择。在断点处停止时,将光标放在您* *想要进入的方法调用上(在您的示例中,将在execute
上)。右键单击,然后选择单步进入选择。这将直接进入"选择" (即光标所在的方法)。
Windows上步入选择的默认键盘快捷键是 Ctrl + F5 (可能 Cmd + < Mac上的kbd> F5 。
答案 1 :(得分:0)
假设您可以更改源代码,令人讨厌的冗长方式是分成多行......
Object a = getA();
Object b = getB();
//...etc...
execute(a, b, ...);
现在你在调用中设置一个断点来执行这个位置并单步执行,它将直接执行。
答案 2 :(得分:0)
将光标放在要停止的行内,右键单击并选择&#34; Run to Line&#34; (或按 CTRL + R ,或者您可能已更改绑定的任何内容)。这将导致您在“调试”视图中选择的挂起线程继续执行该行,然后停止。这应该允许您绕过不断进/出的需要,并避免使用完整的断点。
但需要注意的是:当使用Run to Line时,调试器无法知道实际的执行是否会命中你所要求的行 - 所以如果它实际上没有停止,那么它就没有了。执行你要求它停在的那条线。