【问题标题】:How to step over method call in Eclipse Debugger?如何在 Eclipse 调试器中跳过方法调用?
【发布时间】:2015-05-27 10:13:52
【问题描述】:

在 Eclise 调试器中,默认的步骤选项是:

  • F5:进入方法
  • F6:越线
  • F7:跳出方法

我经常有这样的代码:

obj.getMember().doStuff();

或者甚至更糟(请不要质疑代码设计,只是编造而已):

obj.getInstance().createSomething().getMember().doStuff();

通常我只想检查doStuff(),但F6 不会跳过单个方法调用,但会跳过整行。所以我最终会按 F5F7 直到达到doStuff()

我的问题是:是否有任何选项可以跳过方法调用(= 在一个快捷方式中执行 F5F7 )?如果我必须点击 X、X、X、F5 才能到达 doStuff(),那就太棒了。

// 为澄清而编辑: 我正在寻找仅使用键盘的解决方案。我知道有几种方法可以达到我的方法(例如断点),但我要求 F5 + F7 的组合快捷方式,可以这么说。

【问题讨论】:

    标签: eclipse debugging shortcut


    【解决方案1】:

    你必须选择你想进入的方法,然后右击鼠标你会找到Step into Selection选项:

    选择“步入选择”命令以步入当前 活动编辑器中的选定语句。

    您必须暂停程序执行才能使用此命令。

    从上图中可以看出,一旦选择了进入的方法,您只需在 Mac 上按 OPTION 和 F5 ...

    快捷键:ALT + F5

    【讨论】:

    • 谢谢,但我更想寻找一种快捷方式来跳过方法调用,而不涉及鼠标选择。
    【解决方案2】:

    您也可以在doStuff() 中放置一个断点,当您到达obj.getInstance().createSomething().getMember().doStuff(); 时,只需恢复执行(键绑定:F8

    所有中间帧都会被执行,调试器会再次直接在doStuff()暂停。这当然意味着您无法像使用 aleroot 的 Step into Selection 建议那样决定每次运行。

    【讨论】:

    • 谢谢。我知道断点和恢复功能,但我宁愿寻找一个组合的快捷方式。我将编辑我的问题以进行澄清。
    • 好吧,ResumeF8 作为其默认键绑定,因此如果您可以忍受断点本身,您可以通过一键完成此操作。可能必须进行某种选择,无论是在手之前通过断点还是通过鼠标就地进行。至少没有像“总是在任何一个表达式的最后调用中暂停”这样的功能。
    • 我为您的问题添加了另一个完全正交的答案,因为我现在了解您问题的核心,感谢您的澄清。
    【解决方案3】:

    好吧,完全不同的事情,因为我想我现在更好地理解了你的问题的核心。

    没有预定义的跳过此方法的命令 afaik,因此您可以build one yourself。这涉及到一些高级主题,所以我在这里只发布一些指针:

    1. 创建一个 Eclipse 插件。
    2. 在该插件中,使用 Alt+F8 之类的键绑定声明命令并实现命令的默认处理程序
    3. 在命令的处理程序中,调用绑定到Step intoStep out 操作的内置命令。您可以通过查看 Eclipse 源代码或尝试 Plugin-Spy 功能来找到他们的 ID。
    4. 打包您的插件并启动包含它的 Eclipse。

    通过这种方式,您将重用预定义的功能,并以相对较小的工作量自动将 F5F7 混搭成单个命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多