Intellij IDEA 디 버 깅 기법 에 대한 심도 있 는 설명

머리말
프로그래머 의 일상 업 무 는 코드 를 쓰 는 것 외 에 도 상당 한 시간 동안 버그 를 찾 아 문 제 를 해결 할 것 이다.IDE 에서 디 버 깅 코드 를 떠 날 수 없 는 BUG 를 찾 습 니 다.디 버 깅 기술 을 능숙 하 게 습득 하면 우리 가 검색 시간 을 줄 이 고 문 제 를 신속하게 찾 는 데 도움 을 줄 수 있다.
IDEA 에서 디 버 깅 코드 는 매우 편리 합 니 다.디 버 깅 을 시작 하면 해당 코드 에서 정지점 을 사용 한 다음 에 해당 디 버 깅 을 하면 됩 니 다.바로 이 몇 가지 기능 만 익히 면 코드 를 디 버 깅 할 수 있 기 때문에 오 랜 시간 동안 다른 디 버 깅 기 교 를 이해 하지 못 했다.나중에 IDEA 를 깊이 사용 하 는 과정 에서 IDEA 의 다른 디 버 깅 기 교 를 계속 배 워 서 디 버 깅 속 도 를 어느 정도 가속 화 시 켰 다.
Step 시리즈 버튼
일상적인 디 버 깅 과정 에서 프로그램의 bug 를 찾기 위해 서 는 보통 한 단계 디 버 깅 이 필요 합 니 다.프로그램 이 실행 하 는 절 차 를 추적 하고 변수의 값 에 따라 최종 원인 을 찾 습 니 다.
IDEA 에 서 는 단계별 디 버 깅 에 사용 되 는 일련의 Step 기능 단 추 를 제공 합 니 다.Run 메뉴 표시 줄 에서 모든 Step 기능 을 찾 을 수 있 습 니 다.

또한 디 버 깅 창 에서 도 찾 을 수 있 지만,여기 에는 일부 상용 단추 만 표 시 됩 니 다.

디 버 깅 과정 에서 사용 빈도 가 가장 높 은 것 은 아마도 Setp Over 일 것 이다.Setp Over 는 한 단계 로 코드 를 디 버 깅 할 수 있 지만 방법 이 실 행 될 때 방법 에 들 어가 지 않 고 방법 을 직접 호출 한 다음 다음 줄 로 갑 니 다.
진입 방법 이 필요 하 다 면 Step Into 를 사용 해 야 합 니 다.Step Into 는 호출 방법 에 들 어 갈 수 있 지만 기본 적 인 상황 에서java.*같은 방법 에 들 어가 지 않 습 니 다.진입 이 필요 하 다 면Setting-Stepping에 설치 해 배제 하면 된다.

또 Force Step Into 를 사용 해 강제 진입 할 수도 있다.
한 줄 의 코드 가 여러 가지 방법 을 호출 할 때 Step Into 를 사용 하면 알 이 아프다.Step Into 는 호출 순서에 따라 호출 방법 에 들 어가 지만 우 리 는 그 중의 한 가지 방법 에 만 들 어가 고 싶 을 뿐이다.
이런 장면 에서 우 리 는 Smart Step Into 를 사용 하여 지 정 된 방법 을 선택 하여 들 어 갈 수 있다.

어떤 경우 에는 한 방법 에 들 어간 후 Setp Out 을 사용 하여 빠 른 실행 방법 을 사용 한 후 호출 처 로 돌아 갈 수 있 습 니 다.
또한 for/while 순환 에 들 어간 후 순환 코드 밖에서 점 을 끊 지 않 으 면 나 쁜 코드 에 따라 한 걸음 씩 실행 이 끝나 야 합 니 다.특히 번 거 롭 습 니 다.여기 서 Setp Out Of Code Block 을 사용 하여 순환 코드 블록 을 빠르게 뛰 어 내 릴 수 있 습 니 다.
단점 사용 방법
임시 정지점
일반적으로 디 버 깅 을 할 때,우 리 는 코드 줄 에서 정지점 을 사용 한 후에 테스트 를 실행 하고,프로그램 이 정지점 이 정 지 될 때 까지 관련 변수의 내용 을 봅 니 다.
IDEA 에 서 는 기본 정지점 이 계속 존재 합 니 다.때로는 첫 번 째,임시 점검 만 멈 추고 싶 을 때 가 있 습 니 다.이 럴 때 우 리 는 임시 정지점 을 사용 할 수 있 습 니 다.단축 키 Ctel+Alt+Shift+F8 을 사용 하면 임시 정지점 을 빠르게 만 들 거나 ALt 를 누 른 다음 정지점 을 만 들 수 있 습 니 다.
조건 부 정지점
때때로 우 리 는 데 이 터 를 순환 처리 하 는 과정 에서 특정한 조건 의 데이터 에 만 관심 을 가 질 수 있다.이런 상황 에서 우 리 는 조건 단점 을 사용한다.
정지점 을 오른쪽 클릭 하고 정지점 속성 을 설정 한 창 을 팝 업 하면 condition 에서 조건 을 설정 할 수 있 습 니 다.IDEA 는 이 조건 을 충족 시 킬 때 만 프로그램 을 중단 합 니 다.

별도로 설 치 된 조건 단점 스타일 도 특수 할 수 있 습 니 다.
다 중 스 레 드 정지점
다 중 스 레 드 항목 을 디 버 깅 할 때 여러 스 레 드 코드 에 정지점 을 두 면 디 버 깅 할 때 직렬 디 버 깅 만 할 수 있 습 니 다.

위의 다 중 스 레 드 프로그램 은 두 스 레 드 가 시 작 된 후에 프로그램 이thread1에서 멈 출 수도 있 고thread2에서 멈 출 수도 있 습 니 다.한 개의 단선 이 멈 추 면 다른 한 곳 의 정지점 라인 이 막 힐 것 이다.이 때 는 정지 처 스 레 드 의 정지점 을 디 버 깅 해야만 두 번 째 정지점 으로 넘 어 갈 수 있 고 디 버 깅 하기 가 매우 불편 합 니 다.
우 리 는 정지점 스 레 드 속성 을 설정 하여 이 특성 을 바 꿀 수 있 습 니 다.

정지점 에서 마우스 우 클릭 으로 정지점 설정 상 자 를 팝 업 하고 Suspend 에서 Thread 옵션 을 선택 할 수 있 습 니 다.위의 프로그램 을 다시 시작 한 다음 디 버 깅 창 Frames 에서 thread 1,thread 2 두 개의 스 레 드 를 볼 수 있 습 니 다.그 중 두 스 레 드 는 모두 디 버 깅 에 들 어 갈 수 있 습 니 다.이 때 프로그램 디 버 깅 은 thread 1 에 있 습 니 다.이 때 상 자 를 선택 하여 thread 2 를 선택 하면 thread 2 를 디 버 깅 할 수 있 습 니 다.

또한 정지점 의 다 중 스 레 드 속성 은 기본 속성 을 설정 하고 Make Default 단 추 를 누 르 면 기본 Suspend 속성 을 설정 할 수 있 습 니 다.

리 턴 디 버 깅 프로그램
디 버 깅 을 할 때 가끔 방법 을 잘못 들 어가 거나 호출 과정 을 놓 칠 때 가 있 습 니 다.이 럴 때 는 처음부터 디 버 깅 을 다시 시작 할 수 밖 에 없습니다.새로 디 버 깅 을 시작 하려 면 관련 매개 변 수 를 설정 하고 데이터베이스 상 태 를 수정 해 야 할 수도 있어 매우 번거롭다.그 러 니까 디 버 깅 과정 에서 되 돌 릴 수 있 으 면 다시 시작 하지 않 아 도 돼.
IDEA 에 서 는 Drop Frame 과 Force Return 리 턴 디 버 깅 프로그램 을 사용 할 수 있 습 니 다.
Drop Frame
Drop FrameJVM 에서 스 택 프레임 을 사용 하여 데이터 구 조 를 호출 하고 매번 방법 으로 호출 하 며 하나의 스 택 프레임 이 가상 컴퓨터 에서 스 택 에서 스 택 에서 스 택 으로 나 가 는 과정 에 대응 합 니 다.방법 을 호출 한 후,이 방법 은 창고 프레임 이 창고 꼭대기 에 있 을 것 이다.
Drop Frame 을 실행 하고 스 택 프레임 을 버 리 면 프로그램 은 호출 방법 으로 돌아 갑 니 다.

위의 프로그램 을 디 버 깅 하고 위의 정지점 에서 Drop Frame 을 사용 하면 방법 호출 처,즉 세 번 째 줄 로 돌아 갈 수 있 습 니 다.출력 창 을 보 니 출력 이 없습니다.
Drop Frame 은 디 버 깅 창 표시 줄 에서 찾 을 수 있 습 니 다.

Step Out 과 달리 Step Out 을 실행 하면 방법 은 실행 이 끝 난 후에 호출 처 로 돌아 갑 니 다.
Force Return
Force Return 은 프로그램 이 반 까지 실 행 될 때 종료 프로그램 을 강제로 되 돌려 줍 니 다.Frames 에서 찾 을 수 있 습 니 다.


Force Return 을 누 르 면 반환 값 을 설정 할 수 있 습 니 다.
총결산
이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기