Как заставить IntelliJ только войти в мой исходный код?
У меня есть проект Spring MVC, который я пытаюсь отлаживать с помощью IntelliJ.
Если я установил точку останова в моем коде контроллера, отладка остановится в соответствующем месте. У этой конкретной линии больше моего собственного кода в другом bean. Я хотел бы иметь возможность войти в код. Если я "вступаю" сразу после контрольных точек останова, он переходит в Spring код рамки AOP.
![enter image description here]()
Если я запускаю одну и ту же точку останова и "умный шаг в" сразу, она помещает меня в строку -1 исходного файла (как показано на рисунке выше). Что означает эта строка -1? Если я снова сделаю "умный шаг в", я окажусь на линии после моей исходной точки останова, но никогда не был помещен внутри метода, в который я хотел войти.
Я попытался поместить пакет Spring AOP в настройку отладчика Не входить в классы. Тем не менее, мне также пришлось заняться транзакционными классами, а также несколькими другими. В конце я поместил все Spring в список... и SLF4J и некоторые драйверы JDBC.
Как я могу просто заставить IntelliJ останавливаться только в исходном коде проекта, если я не использую что-то вроде "force step into"?
Ответы
Ответ 1
В настоящее время нет общей опции для целевого кода пользователя (например Visual Studio 'Just My Code').
Лучший способ иметь такое же поведение - исключить определенные классы или пакеты кода (можно настроить шаблоны фильтров для пакетов классов с помощью подстановочных знаков), которые не будут "входить".
Это может быть достигнуто в Настройки/Предпочтения в параметрах Отладка/Шаги.
Ответ 2
Весенний АОП может быть одним из худших преступников.
ОП предположил, что они уже сделали это, но вот как вы можете отключить вход в указанные классы (IntelliJ ULTIMATE 2018.2):
File
→ Settings...
→ Build, Execution, Deployment
→ Debugger
→ Stepping
... Do not step into the classes
→ Add Pattern
→ Enter the filter pattern:
...... org.springframework.aop.*
Обратите внимание, что вы можете использовать подстановочные знаки для отключения целых пространств имен - так, например, предполагая, что пространство имен вашей организации начинается с com
, вы можете получить большую часть пути, занеся в черный список org.*
.
Ответ 3
IntelliJ ULTIMATE 2018.3 Использование File
→ Settings
→ search 'Step' следующим образом: ![enter image description here]()
Ответ 4
Еще один способ в "Ultimate 2019.1" (может быть и в предыдущих версиях):
Когда вы сейчас отлаживаете, вы можете щелкнуть правой кнопкой мыши по классу в представлении "Отладчик" - "Кадры". Затем вы можете выбрать "Добавить пошаговый фильтр..." и добавить для этого класса новый пошаговый фильтр. Конечно, вы также можете изменить новый пошаговый фильтр, используя заполнитель "*" и так далее...