【问题标题】:How do I skip execution of a line of code? [duplicate]如何跳过一行代码的执行? [复制]
【发布时间】:2016-02-03 17:30:50
【问题描述】:

我正在 Eclipse 中调试我的应用程序。最后,我到达了一个断点,该状态将触发下一行代码中的错误。

由于类中的重大更改,最可能的解决方案是删除该行代码。

当然我现在可以这样做:删除该行,重新编译并再次重现该情况。但是,由于很难重现该错误,我现在可以直接跳过该行代码的执行吗?例如。我可以在 Eclipse 中设置“指令指针”吗?

我做过的事情:

  • 我不想要F6 (Step Over),因为那会执行该行。
  • “运行到光标”也不是我想要的,因为这也会执行有问题的行。
  • 根据How to modify Java code during debugging注释掉代码,但是重新执行了方法,从而改变了状态
  • 我试图在this question 上找到答案,但我不仅想运行一行代码,还想运行其余所有代码。
  • This question 只有在两者之间运行代码的答案。
  • drop to frame 功能也无济于事。

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

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

【问题讨论】:

  • 你可以在调试的时候把那行注释掉
  • 试一试怎么样?并在 catch 语句中放置一个断点。每次都会在异常处停止断点
  • @Tim:也不例外
  • @MuratK.: 重新执行方法并改变状态

标签: java eclipse debugging


【解决方案1】:

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

如果您知道必须跳过的行。您可以将它们放在 if 语句中,并在 eclipse 的变量视图中更改布尔值。然后继续到其他线路。 (使用来自 cmets 的代码)

  if (skipped){
    //yourcode
    };

也可以在eclipse中创建表达式。

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

【讨论】:

  • 我正在使用这种方法,它很有用。只需创建 if(skipped){//yourcode};并打开Expression,更改skipped=true 或skipped=false
  • 这很危险:如果您在调试过程中这样做,您可能会忘记更改并意外提交它们,并且它会成为产品的一部分。 (希望单元测试能抓住它)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-13
  • 2012-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多