2013-12-13 11 views
34

Mam projekt Spring MVC, który próbuję debugować przy użyciu IntelliJ.Jak zmusić IntelliJ do wkroczenia tylko w mój kod źródłowy?

Jeśli ustawię punkt przerwania w moim kodzie kontrolera, debugowanie zatrzymuje się w odpowiednim miejscu. Ta konkretna linia ma więcej mojego własnego kodu w innym komponencie bean. Chciałbym móc wejść do kodu. Jeśli "wkroczę" natychmiast po ustawieniach punktu przerwania, przejdzie on do kodu ramowego AOP Springa.

enter image description here

Gdybym wywołać tę samą pułapkę i „inteligentne krok do” natychmiast, to stawia mnie na linii -1 pliku źródłowego (widocznej na rysunku powyżej). Co oznacza ta linia -1? Jeśli ponownie zrobię "inteligentny krok w", kończę na linii po moim pierwotnym punkcie przerwania, ale nigdy nie zostałem umieszczony w metodzie, do której chciałem wejść.

Próbowałem umieścić pakiet Spring AOP w ustawieniu Debugger Nie wkraczaj w klasy. Jednak również musiałem wprowadzić klasy transakcji, a także kilka innych. Ostatecznie umieściłem całą wiosnę na liście ... i SLF4J oraz niektóre sterowniki JDBC.

Jak mogę po prostu ustawić IntelliJ tak, aby zatrzymywał się tylko w kodzie źródłowym mojego projektu, chyba że użyję czegoś takiego jak "wymuszenie kroku"?

+5

w ustawieniu 'Nie wstawiaj do klasy' możesz zadeklarować wzorzec za pomocą symbolu wieloznacznego. Może to pomóc w szybkim wykluczeniu pakietów takich jak 'org. *' I 'com. *', Zakładając, że twoje nie zaczyna się od tych. Byłoby to idealne rozwiązanie, aby móc używać negacji ('!') W tych wzorcach - sugerowałbym wysłanie tego jako żądania funkcji. –

+0

Istnieje powiązane [zapytanie dotyczące funkcji IntelliJ IDEA] (http://youtrack.jetbrains.com/issue/IDEA-54807), proszę zagłosuj. - [IDEA-54807] (http://youtrack.jetbrains.com/issue/IDEA-54807) Pozwól, aby ustawienia projektu miały własne kroki debugowania i dodaj [Tylko krok do klas] dla wydajności – CrazyCoder

Odpowiedz

26

Obecnie nie ma ogólnej opcji kierowania tylko na kod użytkownika (np. Visual Studio's 'Just My Code').

Najlepszym sposobem na zachowanie tego samego zachowania jest wykluczenie określonych klas kodów lub pakietów (możliwe jest ustawienie wzorców filtrów dla pakietów klas za pomocą symboli wieloznacznych), które nie zostaną "wkomponowane".

ten może zostać osiągnięty w ciągu Ustawienia/Preferencje w Debugger/Stepping opcje.