【问题标题】:Hide stack frames in IDE Debugger (e.g. Java9 StackWalker)在 IDE 调试器中隐藏堆栈帧(例如 Java9 StackWalker)
【发布时间】:2018-05-16 13:59:11
【问题描述】:

Java9 的新 StackWalker 功能让我意识到,如果可以将 Eclipse(最好是 IntelliJ)配置为使用可以修改 IDE 调试器中正常调用堆栈视图的自定义 StackWalker,那就太好了。

我想要做的是隐藏例如调试 JavaEE 程序时的特定技术堆栈条目,而且在许多第三方支持库中。一般来说,我希望选择省略通常不感兴趣的特定(可定制)堆栈帧,例如基于(通配符)包或类名。理想情况下,“步入”也会自动跳过此类帧并单步执行,直到回到“未抑制”堆栈帧内。

有谁知道 Eclipse 或 IntelliJ 中是否已经提供了这样的功能。如果它不专门使用 StackWalker 但在概念上类似的东西,那也没关系。或者您是否知道在任一 IDE 中是否计划了此类功能。

【问题讨论】:

    标签: java eclipse intellij-idea eclipse-plugin


    【解决方案1】:

    IntelliJ 在调试器窗口中有一个堆栈过滤器。它使您可以隐藏不是您自己的代码的库中的条目。它是堆栈框架窗口右上角的小过滤器漏斗图标

    打开后,我只能看到来自我的代码的帧。据我所知,调试器尊重该选择,并且只要存在属于您的代码的堆栈帧,它就不会进入导致外部库的方法。

    快速检查插件库并没有发现任何有希望提供附加功能的插件。

    【讨论】:

      【解决方案2】:

      一个出色的功能让我想知道为什么两个 IDE 的核心功能中都没有这个功能。

      日食:

      有人描述了如何在 Eclipse 中不使用 Java9:https://stackoverflow.com/a/27332733/3931225。 遗憾的是,目前仅适用于 Eclipse Luna (4.4)。

      他的工作基于来自 Intersult 的 stackfilter plugin,它仅适用于 Eclipse Indigo (3.7)。

      没有任何过滤器的 Eclipse 调用堆栈:

      带有 stackfilter 插件的 Eclipse 调用栈:

      IntelliJ:

      我没有找到任何方法来过滤 IntelliJ 中的调用堆栈,但它确实有一个 step filter

      【讨论】:

      • 我认为这个答案的任何一部分都不能真正解决这个问题。该问题特别提到了调试器,而不是输出控制台。这两个选项都只处理控制台。
      • @E-Riz 你是对的。我从答案中删除了 IntelliJ 控制台内容,并添加了指向 IntelliJ 步骤过滤器的链接。还添加了 Eclipse 插件的屏幕截图,以更好地显示它是关于调用堆栈,而不是输出控制台。
      猜你喜欢
      • 2014-06-30
      • 2015-05-05
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      • 1970-01-01
      • 2019-06-12
      • 2021-11-25
      • 2012-04-06
      相关资源
      最近更新 更多