Скрыть стековые кадры в отладчике IDE (например, Java9 StackWalker)

Новая функция StackWalker Java9 заставило меня понять, что было бы здорово, если бы Eclipse (предпочтительно, или IntelliJ) мог быть настроен на использование пользовательского StackWalker, который мог бы изменить обычное представление стека вызовов в отладчике IDE.

Что я хочу сделать, так это скрыть, например. конкретные технические записи стека при отладке программ JavaEE, а также во многих сторонних библиотеках поддержки. В общем, я хочу, чтобы опция не учитывала конкретные (настраиваемые) стековые фреймы, которые обычно не представляют интереса, например, на основе (подстановочных знаков) пакетов или имен классов. В идеале, "шаг в" также автоматически пропускает такие кадры и шаг до тех пор, пока он не окажется внутри "не подавленного" кадра стека.

Кто-нибудь знает, доступна ли такая функция уже в Eclipse или IntelliJ. Это нормально, если он специально не использует StackWalker, а что-то концептуально похожее. Или вы знаете, запланирована ли такая функция в среде IDE.

Ответ 1

Отличная функция, которая заставляет меня задаться вопросом, почему обе IDE еще не имеют этого в своей основной функциональности.

Eclipse:

Кто-то описал, как это сделать без Java9 в Eclipse: fooobar.com/questions/158317/.... К сожалению, в настоящее время работает только для Eclipse Luna (4.4).

Его работа основана на плагине фильтров стека от Intersult, который работает только с Eclipse Indigo (3.7).

Стек вызовов Eclipse без фильтра: Eclipse no filter

Стек вызовов Eclipse с плагином-стеке: Eclipse with filter

IntelliJ:

Я не нашел способа фильтрации стека вызовов в IntelliJ, но у него есть фильтр шагов

Ответ 2

IntelliJ имеет фильтр стека в окне отладчика. Он позволяет скрывать записи из библиотек, которые не являются вашим собственным кодом. Это значок маленького фильтра в верхнем правом углу окна стека.

img

После включения я вижу только фреймы, исходящие из моего кода. Насколько я могу судить, отладчик уважает этот выбор и не вступает в методы, которые приводят к внешней библиотеке, если существуют фреймы стека, принадлежащие вашему коду.

Быстрая проверка репозитория плагинов не выявила перспективных плагинов, которые предоставляют дополнительные функции.