2015-11-03 209 views
1

我在Eclipse中调试我的应用程序。最后,我在一个触发下一行代码中的错误的状态中达到了一个断点。如何跳过执行一行代码?

由于班级发生重大变化,最可能的解决方案是删除该行代码。

当然,我现在可以做到这一点:删除线,重新编译和再现sitatuation。但是,由于很难重现该错误,我现在可以简单地跳过执行该代码行吗?例如。我可以在Eclipse中设置“指令指针”吗?

事情我做:

  • 我不想F6(步过)做的,因为这将执行该行。
  • 此外,“运行到游标”不是我想要的,因为它也会执行有问题的行。
  • 注释掉的代码根据How to modify Java code during debugging,但重新执行的方法,从而改变了状态
  • 我试图找到this question一个答案,但我不只是想运行一个单一的代码行但其余的都是。
  • This question只有在两者之间运行代码的答案。
  • drop to frame功能也没有帮助。

链接的问题是从2009年到2013年,所以我希望能得到新的答案。

我在使用Eclipse 4.5.1(Mars.1),最新的正式版本在询问时。

+0

你可以在调试时注释掉这条线 –

+0

try-catch怎么样?并在catch语句中放置一个断点。这将在每次异常时停止断点 – Tim

+0

@Tim:没有异常 –

回答

2

如果您想要在要跳过的行之后执行该行。当您到达要跳过的行之前的行时,选择代码并右键单击,从菜单中选择“检查”。这将执行选定的代码并在弹出窗口中提供结果。

如果您知道必须跳过的行。你可以把它们放在if语句中,并在eclipse中的变量视图中改变布尔值的值。然后进入其他行。 (使用代码从注释)

if (skipped){ 
    //yourcode 
    }; 

另外,也可以在Eclipse中创建表达式。

我错过的一件事是eclipse也支持热代码交换。您可以注释掉该行并保存。它会将调试器控件放回到方法的起始位置。热部署仅支持方法实现中的代码更改。如果您添加新类或新方法,仍然需要重新启动。如果你有服务器在eclispe,这里是你如何能做到这一点http://www.mkyong.com/eclipse/how-to-configure-hot-deploy-in-eclipse/

+0

我正在使用该方法并且它是有用的。只需创建if(跳过){// yourcode};并且打开表达式,改变跳过= true或者跳过= false – hurricane

+0

这很危险:如果你在调试过程中这样做,你可能会忘记更改并意外提交它们,并且它会成为产品的一部分。 (希望单元测试能够抓住它) –