2017-12-02 173 views
10

Nowa funkcja Java9's StackWalker uświadomiła mi, że byłoby świetnie, gdyby Eclipse (najlepiej lub IntelliJ) mógł być skonfigurowany do używania niestandardowego StackWalker, który mógłby zmodyfikować normalny widok stosu połączeń w debugerze IDE.Ukrywanie ramek stosu w IDE Debugger (np. Java9 StackWalker)

Co chcę ukryć, np. określone wpisy stosu technicznego podczas debugowania programów JavaEE, ale także w wielu bibliotekach wsparcia stron trzecich. Generalnie chcę opcję pominięcia określonych (dostosowywanych) ramek stosów, które zazwyczaj nie są przedmiotem zainteresowania, na przykład na podstawie nazw (pakietów wieloznacznych) lub klas. Idealnie "step in" również automatycznie pomijałby takie ramki i przechodził do tyłu w "niezablokowanej" ramce stosu.

Czy ktoś wie, czy taka funkcja jest już dostępna w środowisku Eclipse lub IntelliJ. Jest w porządku, jeśli nie używa specjalnie StackWalker, ale coś podobnego pod względem koncepcyjnym. Czy wiesz, czy taka funkcja jest zaplanowana w IDE.

Odpowiedz

2

Doskonała funkcja, która sprawia, że ​​zastanawiam się, dlaczego oba IDE nie mają tego w swojej podstawowej funkcjonalności.

Eclipse:

Ktoś opisał, jak to zrobić bez Java9 w Eclipse: https://stackoverflow.com/a/27332733/3931225. Niestety, obecnie działa tylko dla Eclipse Luna (4.4).

Jego praca opiera się na stackfilter plugin z Intersult, która działa tylko do Eclipse Indigo (3.7).

Eclipse stosu wywołań bez filtra: Eclipse no filter

Eclipse stosu wywołań z wtyczką stackfilter: Eclipse with filter

IntelliJ:

nie znaleźliśmy żadnych sposób filtrowania stos wywołań w IntelliJ, ale ma on step filter

+0

Nie sądzę, że żadna z tych odpowiedzi naprawdę nie rozwiązuje problemu. Pytanie w szczególności wspomina o debuggerze, a nie o konsoli wyjściowej. Obie te opcje dotyczą tylko konsoli. –

+0

@ E-Riz masz rację. Usunąłem rzeczy z konsoli IntelliJ z mojej odpowiedzi i dodałem link do filtra kroku dla IntelliJ. Dodano również zrzuty ekranu wtyczki Eclipse, aby lepiej pokazać, że chodzi o stos wywołań, a nie konsolę wyjściową. – KompjoeFriek

2

IntelliJ ma filtr stosu w oknie debuggera. Pozwala ukryć wpisy z bibliotek, które nie są twoimi własnymi kodami. Jest to mała ikonka filtr lej w prawym górnym rogu okna stos klatek

img

Gdy włączone, widzę tylko klatek pochodzących z mojego kodu. O ile mogę powiedzieć, debugger respektuje tę selekcję i nie wkracza w metody, które prowadzą do zewnętrznej biblioteki, o ile istnieją stosy klatek należących do twojego kodu.

Szybkie sprawdzenie repozytorium wtyczek nie ujawniło obiecujących wtyczek, które zapewniają dodatkowe funkcje.