2017-12-02 236 views
10

Java9的新功能使我意識到,如果Eclipse(最好是IntelliJ)可以配置爲使用可以修改普通Call Stack視圖的自定義StackWalker在IDE的調試器中。在IDE調試器(例如Java9 StackWalker)中隱藏堆棧框架

我想要做的是隱藏例如調試JavaEE程序時特定的技術堆棧條目,以及許多第三方支持庫中。一般來說,我希望可以省略特定的(可定製的)通常不感興趣的堆棧幀,例如基於包或類名的(通配符)。理想情況下,「步入」也會自動跳過這些幀,然後返回到「未壓縮」堆棧幀內。

有誰知道這樣的功能是否已經可以在Eclipse或IntelliJ中使用。如果它沒有專門使用StackWalker,但是在概念上類似的話,那也沒問題。或者你知道這個功能是否在IDE中計劃。

回答

2

一個很好的功能,讓我想知道爲什麼兩個IDE的核心功能都沒有這個功能。

的Eclipse:

有人描述瞭如何做,沒有Java9在Eclipse:https://stackoverflow.com/a/27332733/3931225。 不幸的是,目前只適用於Eclipse Luna(4.4)。

他的工作基於Intersult的stackfilter plugin,該工具僅適用於Eclipse Indigo(3.7)。

沒有任何過濾器的Eclipse調用堆棧: Eclipse no filter

Eclipse的調用堆棧與stackfilter插件: Eclipse with filter

的IntelliJ:

我沒有發現任何方式過濾調用堆棧中IntelliJ,但它確實有一個step filter

+0

我不認爲這個答案的任何一部分真的解決了這個問題。這個問題特別提到了調試器,而不是輸出控制檯。這兩個選項都只能處理控制檯。 –

+0

@E-Riz你是對的。我從我的答案中刪除了IntelliJ控制檯的東西,併爲IntelliJ添加了一個步驟過濾器的鏈接。還添加了Eclipse插件的屏幕截圖,以更好地顯示它是關於調用堆棧,而不是輸出控制檯。 – KompjoeFriek

2

IntelliJ has調試器窗口中的堆棧過濾器。它可以讓你隱藏不屬於你自己代碼的庫中的條目。它是在棧幀窗口

img

一旦開啓的右上角的小過濾漏斗圖標,我只看到從我的代碼來幀。據我所知,調試器尊重這種選擇,並且只要存在屬於您的代碼的棧幀,就不會進入導致外部庫的方法。

快速檢查插件存儲庫沒有發現任何有前途的插件提供附加功能。