在 IDE 调试器中隐藏堆栈帧(例如 Java9 StackWalker)

Hide stack frames in IDE Debugger (e.g. Java9 StackWalker)

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

我想做的是隐藏例如调试 JavaEE 程序时的特定技术堆栈条目,但也存在于许多第三方支持库中。一般来说,我希望选择忽略通常不感兴趣的特定(可定制)堆栈帧,例如基于包(的通配符)或 class 名称。理想情况下,"step in" 也会自动跳过此类帧并逐步返回到 "not-suppressed" 堆栈帧内。

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

中是否计划了这样的功能吗?

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

日食:

有人描述了如何在 Eclipse 中不使用 Java9 来做到这一点:。 遗憾的是,目前仅适用于 Eclipse Luna (4.4)。

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

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

带有 stackfilter 插件的 Eclipse 调用堆栈:

IntelliJ:

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

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

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

快速检查插件存储库没有发现任何提供附加功能的有前途的插件。