개발자로서 개발 환경에서 디버깅 기술을 마스터해야합니다. Java 프로그램을 작성할 때는 종종 다양한 설명 할 수없는 문제가 발생합니다. 프로그램이 문제가되는 위치를 감지하기 위해서는 종종 변수의 값을보기 위해 로그를 추가해야하므로 디버깅이 매우 귀찮습니다. 신청서를 디버깅하는 데 하루에 1 시간을 소비한다고 가정하면 축적되면 많은 시간이 걸릴 것입니다. 이러한 이유로이 시간을 사용하여 더 편리하게 디버깅 할 수있는 모든 기능을 소중히 여기고 이해하십시오. 그것은 당신에게 시간을 절약 할 수 있으며 당신의 삶을 더 편안하고 편안하게 만들 것입니다.
1. 디버그보기
디버깅에서 가장 일반적으로 사용되는 창은 다음과 같습니다.
| 창문 | 설명 |
|---|---|
| 디버그 창 | 주로 현재 스레드 메소드 통화 스택과 코드 줄 수 (디버깅 정보가 포함 된 코드)를 표시합니다. |
| 브레이크 포인트 창 | => 브레이크 포인트 목록 창. 중단 점 추가, 중단 점 조건 설정, 중단 점 삭제 등을 용이하게 할 수 있습니다. |
| 변수 창 | =>이 애플리케이션을 포함하여 현재 메소드 비 정적 메소드의 로컬 변수 표시 변수의 값을 수정하고 변경할 수 있습니다. |
| 코드 편집 창 | => 더 말할 필요가 없습니다 |
| 출력 콘솔 창 | => 로그 및 기타 출력 내용. 디버깅 중에 구성 요소 수준을 약간 낮게 설정하여 여러 출력 정보를 얻을 수 있습니다. |
또한 보조 창은 다음과 같습니다.
| 창문 | 설명 |
|---|---|
| 발현 발현 창 | => 관찰 해야하는 데이터의 표현식을 작성하거나 미터의 값을 수정하십시오. |
| 디스플레이 창 | => 디스플레이에서 코드 블록, 출력 컨텐츠 등을 실행할 수 있습니다. |
| 개요 개요 창 | => 현재 클래스의 메소드, 변수 등보기 |
| 계층 창을 입력하십시오 | => 구현 인터페이스 및 클래스 상속 레벨을 포함하여 현재 클래스의 상속 레벨을 확인하십시오. |
| 방법 통화 관계 통화 계층 구조 창 | => 어떤 메소드를 호출하고, 어떤 클래스가 호출되는지 확인하고 해당 방법을 직접 열 수있는 방법을 확인하십시오. |
| 검색 결과 검색 창 | => 바로 가기 키를 결합하면 작업 영역, 프로젝트 및 작업 세트에서 참조 또는 정의 된 코드 위치를 볼 수 있습니다. |
1) 창의 전체보기 :
2) 디버그보기 (스레드 스택보기) :
디버그보기를 사용하면 디버깅중인 프로그램을 관리하고 워크 벤치에서 실행할 수 있습니다. 디버깅하는 프로그램에 매달린 스레드의 스택 프레임이 표시되며 프로그램의 각 스레드는 트리의 노드로 나타납니다. 그는 실행중인 각 대상의 프로세스를 보여줍니다. 스레드가 매달리면 스택 프레임이 자식 요소로 표시됩니다. 다음은 일반적으로 사용되는 디버그 버튼입니다.
1. 현재 구현이 다음 중단 점까지 계속 실행되고 바로 가기 키는 F8임을 나타냅니다.
2. 그것은 전체 프로세스를 방해하는 것을 의미합니다
3. 그것은 현재 방법을 입력하는 것을 의미하며 바로 가기 키는 F5입니다.
4. 다음 줄의 코드를 실행하는 것을 의미하며 바로 가기 키는 F6입니다.
5. 그것은 현재 방법을 종료하고 호출 계층으로 돌아 오는 것을 의미합니다. 바로 가기 키는 F7입니다.
6. 현재 스레드 스택을 나타내는 코드의 줄 번호뿐만 아니라 어떤 코드와 전체 호출 프로세스를 볼 수있는 현재 스레드 스택을 나타냅니다.
자세한 소개 :
모든 중단 점을 건너 뜁니다. 모든 중단 점을 건너 뛰도록 설정하십시오. 모든 중단 점을 건너 뛰면 모든 중단 점에 슬래시가 발생하여 중단 점이 건너 뛸 수 있고 스레드가 중단 점에서 매달리지 않음을 나타냅니다.
프레임으로 드롭 :이 명령을 사용하면 프로그램이 현재 방법의 시작으로 돌아가서 다시 실행을 시작할 수 있습니다. Java 스택 프레임을 다시 실행할 수 있습니다. 지정된 스택 프레임을 선택한 다음 드롭을 클릭하여 프레임을 클릭하여 지정된 스택 프레임을 다시 입력 할 수 있습니다. 드롭을 사용하여 프레임에주의하십시오.
1. 이미 실행 된 메소드 스택에서 메소드에 떨어질 수 없습니다.
2. 스택 프레임에 떨어지면 글로벌 데이터의 원래 값이 변경되지 않습니다. 예를 들어, 요소가 포함 된 Verter는 지우지 않습니다.
스텝 필터 :이 기능은 비교적 간단합니다. 디버깅시주의를 기울이지 않는 일부 클래스를 무시하려면 필터링을위한 스텝 필터를 활성화 할 수 있습니다. 필터링되지 않은 위치 나 중단 점이 발생할 때까지 프로그램은 계속 실행됩니다. 스텝 필터 기능은 스텝 필터 사용, 스텝 필터 편집, 필터 유형 및 필터 패키지의 네 가지 항목으로 구성됩니다. 특정 작업은 다음과 같습니다.
1 단계 : Windows-> 환경 설정 -> java-> 디버그 -> 스텝 필터링.
2 단계 : '스텝 필터 사용'을 선택하십시오.
3 단계 : 화면에서 원하는 옵션을 선택하십시오. 자신의 코드 기반에 일부 코드를 추가 할 수 있습니다.
4 단계 : '적용'을 클릭하십시오.
원칙적으로, 편집 단계 필터 명령은 단계 필터 규칙을 구성하는 데 사용되며 필터 유형과 필터 패키지는 각각 필터링 된 Java 유형 및 Java 패키지를 참조하십시오.
스텝 리턴 : 현재 방법에서 튀어 나옵니다. 호출 된 메소드를 실행하는 동안 스텝 리턴을 사용하면 메소드에서 벗어나 현재 메소드의 모든 코드를 실행 한 후 메소드를 호출하는 메소드로 돌아갑니다.
OFFER : 단일 단계를 실행할 때 함수의 하위 기능이 발생하면 단일 단계를 수행하기 위해 하위 기능을 입력하지는 않지만 하위 기능의 전체 실행, 즉 전체 하위 기능이 한 단계로 취해집니다.
단계적으로 단계 : 단계를 밟고, 들어가서 서브 기능이 발생할 때 들어가고 계속 들어갑니다.
이력서 : 일시 정지 스레드를 복원하고 현재 위치에서 다음 중단 점 위치로 직접 점프합니다.
일시 중단 : 선택한 스레드를 일시 중지하면 코드를 탐색하거나 수정하고 데이터를 확인할 수 있습니다.
Eclipse는 스레드 서스펜션 및 회복을 지원합니다. 일반적으로, 삭제는 다중 스레드 프로그램의 디버깅에 적합합니다. 스택 프레임과 특정 스레드의 가변 값을 볼 필요가 있으면 SUSTEND 명령을 통해 스레드를 중단 할 수 있습니다. 이력서는 복구에 사용됩니다.
주의가 필요한 두 가지 유형의 이력서가 있습니다.
첫 번째는 디버깅 프로세스 중에 프로그램 코드를 수정하고 저장하고 이력서를 클릭하면 프로그램이 중단 점에서 일시적으로 중단됩니다.
두 번째는 프로그램이 예외를 던지면 실행 이력서와 프로그램이 중단 점에서 일시적으로 중단된다는 것입니다.
종료 : Eclipse는 종료 명령을 통해 로컬 프로그램의 디버깅을 종료합니다.
연결 해제 : Eclipse는 분리 명령을 사용하여 원격 JVM에 소켓 연결을 종료합니다.
1. 디버깅 및 실행
| 표시 | 기능 | 바로 가기 키 | 설명하다 |
|---|---|---|---|
| 6.4 | 단계 정보 | F5 | -> 단계로 들어갑니다 (메소드 호출이 있으면 디버깅을위한 호출 메소드가 입력됩니다); |
| 6.4 | 한 걸음 더 | F6 | -> 단계별로 건너 뛰기 (라인을 입력하지 않는 모든 메소드 호출에서 현재 코드 줄을 직접 실행하고 다음 줄로 점프); |
| 6.4 | 스텝 리턴 | F7 | -> 단일 단계로 리턴합니다 (현재 메소드를 실행하고, 통화 스택에서 현재 메소드를 팝하고, 현재 메소드가 호출되는 통화 위치로 돌아갑니다); |
| 6.5 | 재개하다 | F8 | -> 정상 실행을 재개합니다 (다음 중단 점이 발생할 때까지); |
| 7.4 | 라인으로 달려갑니다 | ctrl+r | -> 현재 선으로 실행됩니다 (중간의 모든 중단 점은 무시되고 현재 커서가 위치한 선으로 실행됩니다); |
| 6.3 | 프레임으로 떨어집니다 | 없음 | -> 지정된 메소드의 시작으로 돌아 가면이 기능은 상당히 좋습니다. 메소드 호출 스택에서 메소드를 마우스 오른쪽 버튼으로 클릭하고 드롭을 선택하여 프레임을 선택하여 메소드의 시작 부분에서 실행하십시오 (예 :이 메소드를 다시 실행하십시오. 이 메소드의 첫 번째 줄 에서이 방법을 프레임으로 사용 하여이 메소드를 프레임으로 사용할 수 있습니다. 물론, 데이터베이스 작업과 같은 부작용이있는 메소드, 전달 된 매개 변수의 객체 내용 변경 등의 경우 원하는 컨텐츠의 내용을 다시 데려 갈 수 있습니다. |
| 6.1+6.2 | 스택을 복사하십시오 | 없음 | -> 현재 스레드 스택 정보를 복사하십시오 |
디버깅 중에 클래스, 패키지 등을 제외 해야하는 경우 스텝 필터 편집 설정을 사용할 수 있습니다.
A6의 속성 : 콘솔 시작 매개 변수, 환경 매개 변수 등을 포함한 Java 프로세스 시작 정보. 매개 변수 시작 매개 변수에 문제가있는 경우 먼저 실제 시작 매개 변수가 잘못되었는지 확인할 수 있습니다. 또한 가상 머신의 관련 옵션을 볼 수도 있습니다.
2. 데이터보기
| 표시 | 기능 | 바로 가기 키 | 설명하다 |
|---|---|---|---|
| 7.4 | 검사 | Ctrl+Shift+i | -> 선택한 변수, 표현식 값 또는 실행 결과를보기 위해 Ctrl+Shift+I을 다시 누르면 현재 표현식 또는 값을 표현식 창에 추가합니다. |
| 7.4 | 표시하다 | Ctrl+Shift+d | -> 선택한 변수, 표현식 값 또는 실행 결과를 표시합니다. Ctrl+Shift+D를 다시 누르면 디스플레이 창에 현재 표현식 또는 값을 추가 할 수 있습니다. |
| 7.4 | 실행하다 | ctrl+u | -> 선택 표현식 실행; |
| 7.4 | 라인으로 달려갑니다 | ctrl+r | -> 현재 선으로 실행됩니다 (중간의 모든 중단 점은 무시되고 현재 커서가 위치한 선으로 실행됩니다); |
| 7.3 | 모든 인스턴스 | Ctrl+Shift+n | -> 선택한 클래스의 모든 객체를 보고이 기능은 우수합니다. |
| 7.3 | 인스턴스 카운트 | 없음 | -> 선택한 클래스에서 모든 객체의 수를 봅니다. |
| 7.4 | 보다 | 없음 | -> 표현식 창에 현재 변수와 표현식을 추가하십시오. |
3) 변수보기 (변수보기)
1. 변수 이름보기의 경우 현재 코드 라인에서 액세스 할 수있는 모든 인스턴스 변수 및 로컬 변수를 표시하십시오.
2. 모든 변수 값을 표시합니다
3.이 창을 통해 변수 값을 변경할 수 있습니다.
변수보기 디버그보기에서 선택한 스택 프레임과 관련된 변수 정보를 표시합니다. Java 프로그램을 디버깅 할 때 변수는 세부 사항 창에 더 자세한 정보를 표시하도록 선택할 수 있습니다. 또한 Java 객체는 포함 된 속성의 값을 표시 할 수도 있습니다. 이 창에서 변수를 선택하고 마우스 오른쪽 버튼을 클릭하여 많은 작업을 수행하십시오. 주요 작업은 다음과 같습니다.
모든 인스턴스 : Java 클래스의 모든 인스턴스를 표시하기 위해 대화 상자를 엽니 다. 이 기능을 사용하려면 Java Virtual Machine이 인스턴스 검색을 지원해야합니다.
모든 참조 :: 변수를 참조하는 모든 Java 객체를 표시하려면 대화 상자를 엽니 다.
변경 값 :: 변수의 값을 변경합니다. 이 기능은 프로그램 디버깅을 위해 Drop to Frame과 함께 사용할 수 있습니다. Re-Debug 대신이 두 기능을 사용하십시오
변수 복사 : 변수의 값을 복사하십시오. 특히 변수 값이 매우 길면 (예 : JSON 데이터)이 기능은 편리합니다.
찾기 : 때로는 클래스에 많은 변수가있을 때 검색 할 수 있습니다.
4) 중단 점보기 (브레이크 포인트보기)
1. 모든 중단 점을 표시하십시오
2. 현재 창에서 선택한 포트를 무효화하고 다시 활성화를 클릭하십시오.
3. 예외 중단 점
브레이크 포인트보기에는 현재 작업 간격에서 설정 한 모든 중단 점이 나열됩니다. 중단 점을 두 번 클릭하여 프로그램에서 중단 점의 위치를 입력하십시오. 또한 브레이크 포인트를 활성화 또는 비활성화하고, 삭제하고, 새 제품을 추가하고, 작업 그룹 또는 포인트 히트 카운트를 기반으로 그룹화 할 수도 있습니다. 중단 점을 사용할 때 매우 유용한 두 가지 기술이 있습니다.
히트 카운트 : 코드 세그먼트가 중단 점에서 실행되는 횟수를 지정합니다. 가장 일반적인 것은 루프입니다. 루프를 10 회 실행하고 스레드가 매달리면 적중 값은 10이고 9 일에 실행될 때 전류 루프가 매달려 있습니다.
조건부 : 이름에서 알 수 있듯이 조건부 판단입니다. 예를 들어, 변수 i == 10을 루프해야 할 때 스레드가 일시 중단 된 다음 조건이 i == 10으로 설정되고 "true"가 일시 중단됩니다.
적중 수와 조건부가 모두 위에서 선택되면 표현식 및 값 설정이 불합리한 경우 유효하지 않습니다. 값이 변경 될 때 정지를 선택하면 변수 값이 변경되면 조건부가 중단 될 수 있습니다.
5) 표현식보기 (표현보기)
1. 표현
2. 새 표현을 추가하려면 여기를 클릭하십시오
디버그 관점의 편집기에서 표현식 값을 찾으려면 브레이크 포인트 세트로 전체 줄을 선택하고 컨텍스트 메뉴에서 검사 옵션을 선택하십시오. 표현식은 현재 스택 프레임의 맥락에서 평가되며 결과는 디스플레이 창의 표현식보기에 표시됩니다. 예를 들어 변수 A+B의 값을 계산하려면 표현식보기에 표현식을 추가 할 수 있습니다.
6) 디스플레이보기
이보기를 사용하여 새 코드를 입력하거나 계산할 수 있습니다. 이 코드는 현재 디버그 위치의 맥락에서 실행되므로 모든 변수 및 컨텐츠 보조원을 사용할 수 있습니다. 코드를 실행하려면 코드를 표시하고 마우스 오른쪽 버튼 클릭 메뉴 또는 CTRL+U (실행) 또는 CTRL+SHIFT+I (체크)를 사용하십시오.
7) 코드보기 보조 창
1. 코드보기 :
특정 코드를 표시하는 데 사용되는 코드보기. 녹색 부분은 현재 실행중인 코드를 나타냅니다.
| 표시 | 기능 | 바로 가기 키 | 설명하다 |
|---|---|---|---|
| 11.1 ~ 11.5 | 빠른 유형 계층 | ctrl+t | 현재 클래스 및 인터페이스의 상속 레벨을 확인하십시오. 기본적으로 입력하면 현재 클래스/메소드의 상속/구현의 서브 클래스가 표시되고 서브 인터페이스 11.1이 표시됩니다. Ctrl+t 다시, 수퍼 클래스/인터페이스 11.2 현재 클래스 및 인터페이스의 상속/구현이 표시됩니다. 디버깅 중에이 기능은 종종 인터페이스 또는 추상 클래스의 메소드 호출에서 구현 클래스 11.4를보고 해당 구현 방법 11.5로 직접 탐색하는 데 사용됩니다. |
| 빠른 개요 | ctrl+o | 방법, 속성 등을 포함한 현재 클래스의 개요를 확인하십시오. 거의 사용되지 않습니다. | |
| 공개 선언 | F3 | 변수, 속성 및 방법의 정의를보십시오 |
2. Hierarchy Window를 호출합니다.
| 표시 | 기능 | 바로 가기 키 | 설명하다 |
|---|---|---|---|
| 12.1 ~ 12.2 | 열린 통화 계층 구조 | Ctrl+alt+h | 레벨이라는 메소드를 확인하십시오. 현재 메소드가 12.1이라고하는 위치를 확인하거나 현재 메소드가 다른 메소드 클래스 12.2를 호출하는 위치를 확인할 수 있습니다. |
3. 계층 유형 창 :
| 표시 | 기능 | 바로 가기 키 | 설명하다 |
|---|---|---|---|
| 13.1 ~ 13.4 | 오픈 유형 계층 | F4 | 상속 레벨을 확인하십시오. 아동 클래스 부모 클래스 13.1 또는 클래스에서 구현 한 인터페이스 상속 레벨 13.2를 포함하여 클래스의 상속 레벨을 볼 수 있습니다. 클래스 13.3 및 13.4의 개요는 선택한 클래스/인터페이스에 따라 오른쪽에 표시됩니다. 13.3은 부모 클래스/부모 인터페이스의 속성, 메소드 등을 표시할지 여부를 선택할 수 있습니다. |
4. 검색 창 :
| 표시 | 기능 | 바로 가기 키 | 설명하다 |
|---|---|---|---|
| 14.1 | 선언 | Ctrl+g | 동일한 방법 서명은 작업 공간 및 타사 JAR 패키지 14.1에 정의됩니다. |
| 14.2 | 참조 | Ctrl+shif+g | 현재 선택된 변수, 속성 및 메소드는 작업 공간 및 타사 JAR 패키지 14.2에서 참조됩니다. |
| 14.3 | ctrl+shift+u | 현재 class14.3에 변수, 속성 및 메소드가 나타나는 위치를보십시오. | |
| 14.4 | 구현 | 현재 인터페이스를 구현하는 클래스 14.8보기 | |
| 14.4 ~ 14.7 | 디스플레이 방법 | 다른 디스플레이 방법을 선택하고 자세한 내용은 사진을 볼 수 있습니다. |
2. 디버그
1. 중단 점을 설정하십시오
소스 코드 파일에서 중단 점을 설정하려는 코드 줄 앞의 표시된 줄에서 왼쪽 마우스 버튼을 두 번 클릭하여 중단 점을 설정 한 다음 동일한 위치에서 다시 클릭하여 중단 점을 취소하십시오. 때때로 우리는 여전히 이러한 요구, 즉 코드를 라인별로 실행하고 싶지 않습니다. 예를 들어, for 루프는 1,000 회 이상 루프됩니다. 나는 단지 500 시간에 디버깅을 위해 스레드를 걸게하고 싶다. 현재 조건부 중단 점을 사용할 수 있습니다. 조건 중단 점 설정 :이 중단 점의 트리거 조건을 설정할 수 있습니다. 특정 조건이 충족되면 디버깅을 시작할 수 있습니다. 중단 점을 마우스 오른쪽 버튼으로 클릭하고 중단 점 속성을 선택하여 중단 점 설정 페이지를 입력 할 수 있습니다. 우리가 브레이크 포인트보기에 대해 이야기 할 때, 우리는 히트 카운트와 조건부의 사용법을 배웠습니다. 여기서 우리는 조건과 실행 수를 설정할 수 있습니다.
1.1) 중단 점 유형 및 중단 점 창
디버깅 중에 설정할 수있는 5 가지 유형의 중단 점이 있습니다.
1. 라인 중단 점 : 이름에서 알 수 있듯이 조건부 중단 점은 특정 조건을 가진 중단 점입니다. 사용자가 설정 한 조건이 충족 될 때만 코드가 중단 점으로 실행될 때 중지됩니다.
2. 메소드 중단 점 : 메소드 브레이크 포인트에 대한 특별한 점은 JDK의 소스 코드에서 누를 수 있다는 것입니다. JDK는 컴파일 중에 디버깅 정보를 제거하므로 일반적인 중단 점은 내부에 닿을 수 없지만 메소드 중단 점은 가능합니다. 이 메소드를 통해 메소드의 통화 스택을 볼 수 있습니다.
3. 중단 점을 관찰하십시오 (시계 브레이크 포인트 멤버 가변 액세스 변경)
4. 예외 중단 점
5. 클래스 하중 중단 점
각 유형의 중단 점의 설정은 약간 다릅니다. 중단 점 -> 브레이크 포인트 속성을 마우스 오른쪽 버튼으로 클릭하여 설정할 수 있지만 일반적으로 중단 점 창에 빠른 설정 인터페이스가 있습니다. 브레이크 포인트 속성에는 더 많은 필터가 있으며, 실제로는 쓸모가 없으며 그다지 유용하지 않습니다.
중단 점 관련 단축키 키 :
| 바로 가기 키 | 설명 |
|---|---|
| Ctrl+Shift+b | 커서의 큰 중단 점/취소 중단 점 |
| Ctrl+alt+b | 모든 중단 점을 무시하십시오 |
| Alt+Shift+Q, b | 중단 점 창을 활성화하십시오 |
1. 줄 브레이크 포인트 : 메소드의 특정 줄에서 브레이크 포인트 1.1 및 1.4. 라인 브레이크 포인트는 스레드/VM 1.3 현탁 상태를 설정하고 액세스 수는 1.2를 설정할 수 있습니다.
1.3의 조건은 스프링이 Bean 정의 (RegisterBeendefinition)를 등록 할 때 org.springframework.demo.mybean 인 경우 스레드가 일시 중단되고 단계별 디버깅을 시작할 수 있다는 것입니다.
HIT Count 1.2를 사용하기 위해 일반적으로 루프에 있습니다. Nth 객체 처리에 문제가있는 경우 Hit Count = N을 설정하십시오. RE-DEBUG 중에 디버깅 해야하는 루프 수를 디버깅을 중지하는 것이 편리 할 수 있습니다.
2. 메소드 중단 점 : 방법의 중단 점 2.1 및 2.2. 메소드 중단 점의 장점은 메소드 메소드를 입력하거나 종료 할 때 중지 및 디버그 할 수 있다는 것입니다. 이들은 행 중단 점과 유사하며 행 중단 점과 메소드 중단 점만 설정 조건 및 액세스 시간의 함수가 있습니다.
그러나 메소드 중단 점은 또 다른 장점이 있습니다. 코드가 컴파일되면 지정된 줄 브레이크 포인트가 작동하지 않으므로 메소드 중단 점 만 누릴 수 있습니다.
관심이 있으시면 라인 번호를 추가하기 전에 후크를 제거하고 a1을 통해 디버깅하고 살펴볼 수 있습니다.
3. 중단 점을 관찰하십시오. 중단 점 3.1 및 3.3 멤버 변수의 적중. 객체 멤버 변수 만 효과가 있으며 정적 멤버 변수는 작동하지 않습니다.
변수에 액세스하거나 설정 될 때 스레드/VM 3.2를 중단되도록 설정할 수 있습니다. 즉, 3.4와 유사한 멤버 변수에 액세스하거나 설정하는 모든 방법이 모니터링됩니다.
4. 예외 중단 점 : 예외 중단 점은 4.6을 통해 추가하거나 로그 정보에서 예외 클래스 정보 출력을 클릭 할 수 있습니다.
예외 중단 점 4.1. 시스템에서 예외가 발생하면 캡처 된 예외의 던지기 위치 또는 프로그램이 포착되지 않은 예외 던지기 위치 4.2 및 4.4에서 스레드/VM이 중단되며 예외를 포함하는 서브 클래스가 4.3 및 4.5를 감지하는지 여부를 지정할 수도 있습니다.
위의 비정상적인 서스펜션 외에도 Java-> 디버그에서 일시 중단 실행을 설정할 수 있습니다.
1. 가입되지 않은 예외에 대한 실행 중단 여부. 디버깅 중에는 디버깅에 영향을 미치는 예외 중단이 항상 있지만 예외 중단 점은 설정되지 않으면이 옵션을 확인할 수 있습니다.
2. 컴파일 오류 중에 중단 되든이 상황은 일반적으로 코드를 디버깅하고 수정할 때 발생합니다.
언급해야 할 또 다른 점은 기본 메소드가있는 응용 프로그램이 시작되었다는 것입니다. 디버깅 구성의 메인 A3에서 중지를 확인할 수 있습니다. 프로그램이 들어 오면 스레드가 중단되고 디버깅을 기다립니다.
5. 클래스로드 브레이크 포인트 : 브레이크 포인트 5.1이 클래스 이름에 적용되었습니다. 클래스로드 브레이크 포인트는 인터페이스에 설정할 수 없지만 추상 클래스는 괜찮습니다. 그러나 디버깅 중에 중단 점은 클래스 로더에 분명히 들어 가지 않습니다. 단계별 항목은 서브 클래스 구조 방법에 입력하는 것으로 알려져 있습니다. 스레드를 중단 한 후 비 임금 클래스는 클래스 로더로 들어갑니다 (필터를 필터링하지 않는 경우) 5.3. 클래스로드 브레이크 포인트가 초록 또는 비 임계 클래스에서 발생하는지 여부에 관계없이 클래스가 처음로로드되거나 첫 번째 서브 클래스가 처음으로로드되면 스레드/VM5.2가 중단됩니다.
2. 프로그램 디버그
1. 현지 Java 언어 프로그램을 디버그하십시오
모든 디버깅 중에서 Java 프로그램 디버깅은 주로 중단 점 설정, 디버깅 시작, 스텝핑 및 디버깅 종료를 포함하여 가장 쉬운 일입니다.
1) 중단 점 설정 :
2) 디버깅 시작 : Eclipse는 프로그램 디버깅을 시작하는 4 가지 방법을 제공합니다 (시작), 즉 메뉴 (run> debug), 아이콘 ( "Green Bed Bug"), Right-> Debug as and Shortcut Key (F11)를 통해. 이와 관련하여 다른 명령 (예 : 런)과 유사합니다.
프롬프트가 나타납니다. 디버깅 작업 공간으로 전환하고 "내 결정 기억"을 확인하고 선택해야합니다. 다음 번에 프롬프트가 표시되지 않으면 [예]를 클릭하십시오.
3) 단일 단계 실행 : 주로 디버깅을 위해 위에서 언급 한 여러 뷰를 사용하며, 그 중 디버그보기의 여러 버튼에 바로 가기 키가 있습니다.
스텝 리투엔 (F7)
Step Over (F6)
들어가기 (F5)
최종 디버깅 : 종료 명령을 통해 로컬 프로그램의 디버깅 종료.
2. 케이스
시나리오 1 : Xiao Ming은 작업 집행자를 썼는데, 이는 지속적으로 실행되었습니다. 그는 일정 시간 동안 온라인으로 실행 한 후 약간의 실패 가능성이 있음을 발견했습니다. 일정 기간 동안 실행 한 후 작업 집행자는 비정상적으로 종료되었습니다. 널 포인터 였기 때문에 Xiao Ming은 로컬에서 디버그하기를 원했고 중단 점이 어디에 있는지 알지 못했습니다. 이 문제는 확률 론적 사건이며 반드시 나타나지 않을 수도 있습니다. 그래서 Xiao Ming이 여러 번 디버깅 한 후, 그는 현기증이 났고 코드를 명확하게 볼 수 없었습니다. Xiao Ming은 중단 점을 갖고 멈추고 널 포인터 예외가 발생할 때마다 문제를 찾게했습니다. 그것은 좋을 것입니다.
예외 중단 점
예외 중단 점 : 문제를 찾는 과정에서 종종 적절한 위치에 맞을 수없는 브레이크 포인트가 발생합니다. 이는 문제의 트리거 점과는 매우 다릅니다. 따라서 현재 예외 중단 점을 시도 할 수도 있습니다. 이름에서 알 수 있듯이 예외 중단 점은 특정 예외를 던진 후 자동으로 중단되는 중단 점을 나타냅니다.
비정상적인 중단 점을 추가하려면 빨간색 부분을 클릭하십시오.
NullPointerException과 같이 찾을 예외 유형을 입력하십시오. 이런 식으로 NullPointerException 예외가 시스템에 발생하면 현재 스레드가 중단되어 문제를 찾을 수 있습니다.
장면 2 : Xiao Ming은 거대한 루프를 썼습니다. Xiao Ming은 코드를 조정할 때 루프가 100,000 시간에 도달 할 때마다 문제가 있었고 그의 기대에 부응하지 못했다는 것을 발견했습니다. 그래서 Xiao Ming은 루프에서 중단 점을 만들어 무슨 일이 일어나고 있는지보고 싶어했지만 Xiao Ming은 100,000 루프에 도달하는 것이 얼마나 어려운지 생각하지 않았습니다. 현재 Xiao Ming은 이미 중단 점이있을 수 있다면 이미 많이 생각하기 시작했습니다.
루프 수 == 100000 인 경우 스레드가 중지됩니다.
조건부 중단 점
오른쪽 그림에 표시된 것처럼 1000 번 루프. 반복시 500 회 중지하려면 조건부 중단 점을 생성하고 중단 점을 마우스 오른쪽 버튼으로 클릭하여 중단 점 속성을 걸 수 있습니다.
활성화 조건을 선택하십시오
빈 속에 자신의 상태를 추가하십시오. 조건이 true를 반환하면 스레드가 매달려집니다. 거짓이면 예외는 무시됩니다.
히트 카운트는 중단 점이 통과 된 후 공식적으로 스레드를 중단합니다. 그것이 500으로 설정되면 처음 499 번이 표현되며 중단 점 후에는 중지되지 않습니다. 중단 점이 500 시간이면 중단 점은 현재 스레드를 중단합니다.
표현
표현식은 현재 코드에서 사용할 수없는 일부 명령 줄을 볼 수 있도록 문제의 위치를 촉진 할 수 있습니다.
장면 3 : Xiao Ming은 최근에 문제가 발생했습니다. 타사 플러그인을 호출 할 때 항상 문제가 있습니다. Xiao Ming은 그것이 타사 플러그인의 버그라고 의심했지만 Xiao Ming은 소스 코드를 찾지 못해 디버깅 할 수 없었습니다. Xiao Ming은 무엇을해야합니까?
타사 플러그인을 대상으로하는 디버그
1. 디 컴파일 도구를 사용하여 코드를 디 컴파일하십시오
2. 소집 된 소스 코드를 필터링하십시오
3. 소스 코드 컴파일 오류를 수정하십시오
4. 디버그
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.