programing

IntelliJ가 내 소스 코드에만 들어가도록 강제하는 방법은 무엇입니까?

nasanasas 2020. 12. 9. 08:17
반응형

IntelliJ가 내 소스 코드에만 들어가도록 강제하는 방법은 무엇입니까?


IntelliJ를 사용하여 디버깅하려는 Spring MVC 프로젝트가 있습니다.

컨트롤러 코드에 중단 점을 설정하면 적절한 위치에서 디버그가 중지됩니다. 그 특정 줄에는 다른 빈에 더 많은 내 코드가 있습니다. 코드를 입력하고 싶습니다. 중단 점 리거 직후에 "들어가면"Spring의 AOP 프레임 워크 코드로 들어갑니다.

여기에 이미지 설명 입력

동일한 중단 점과 "스마트 스텝 인"을 즉시 트리거하면 소스 파일의 -1 줄에 놓이게됩니다 (위의 그래픽 참조). -1이 의미하는 것은 무엇입니까? 다시 "스마트 스텝 인 (smart step into)"을 수행하면 원래 중단 점 다음 줄에 도착하지만 들어가고 싶은 메서드 내부에 배치 된 적이 없습니다.

나는 Spring AOP 패키지를 디버거 설정에 넣는 것을 시도했다 Do not step into the classes . 그러나 결국 트랜잭션 클래스와 다른 여러 클래스를 입력해야했습니다. 결국 나는 모든 Spring을 목록에 넣고 SLF4J와 일부 JDBC 드라이버를 넣었다.

"강제 단계"와 같은 것을 사용하지 않는 한 IntelliJ가 내 프로젝트 소스 코드에서만 중지되도록하려면 어떻게해야합니까?


현재는 Visual Studio의 'Just My Code' 와 같이 사용자 코드 만 대상으로하는 전체 옵션이 없습니다 .

동일한 동작을하는 가장 좋은 방법은 '단계적'으로 들어 가지 않을 특정 코드 클래스 또는 패키지 (와일드 카드를 통해 클래스 패키지에 대한 필터 패턴을 설정할 수 있음)를 제외하는 것입니다.

이것은 내에서 달성 할 수 설정 / 환경 설정 에, 스테핑 / 디버거 옵션을.


Spring의 AOP 는 최악의 범죄자 중 하나 일 수 있습니다.

OP는 이미이 작업을 수행했다고 제안했지만 다음은 지정된 클래스로의 스테핑을 비활성화하는 방법입니다 (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.*.


IntelliJ ULTIMATE 2018.3 사용 File-> Settings-> 다음과 같이 '단계'검색 :여기에 이미지 설명 입력


"Ultimate 2019.1"의 또 다른 방법 (이전 버전에서도 가능) :

지금 디버깅 할 때 "Debugger"- "Frames"뷰에서 클래스를 마우스 오른쪽 버튼으로 클릭 할 수 있습니다. 그런 다음 "스테핑 필터 추가 ..."를 선택하고 해당 클래스에 대해 새 단계 필터를 추가 할 수 있습니다. 물론 여기에서 자리 표시 자 "*"등을 사용하여 새 단계 필터를 변경할 수도 있습니다.

참고 URL : https://stackoverflow.com/questions/20575107/how-to-force-intellij-to-only-step-into-my-source-code

반응형