대부분의 시간 동안 코드를 작성하는 것 외에도 프로그래머는 코드를 디버깅하는 데 많은 시간을 소비합니다. 코드를 디버깅하거나 코드를 디버깅하려고한다고합니다. :)
오늘 우리는 디버깅 코드와 IDE가 제공 한 디버거를 사용할 때 문제를 신속하게 찾는 몇 가지 방법에 대해 이야기 할 것입니다.
이것을 보는 친구들, 나를 타이틀 파티로 즉시 생각하지 마십시오. 살펴 보겠습니다. 더 나은 기술이 있으면 메시지를 남겨주세요.
주제에 접근합시다.
1 다중 스레드 디버깅
너무 많은 스레드 응용 프로그램을 개발 한 친구는 이해해야합니다. 때로는 여러 스레드 사이의 다양한 변수 상태를 관찰하고 잠금의 획득을 관찰하기 위해 코드를 디버깅하기 위해 중단 점을 추가 할 것이라고 생각합니다.
중단 점이 IDE에서 중지되면 다른 스레드로 전환하고 서로 영향을 미치지 않고 다른 코드를 실행할 수 있습니다. 물론, 여기에는 Eclipse에서 기본적으로 켜진 스위치가 있습니다.
그러나 Intellij Idea에서는 기본적으로 활성화되지 않습니다. 즉, 코드의 아이디어에 중단 점을 추가하면 한 스레드가 분해되지만 다른 스레드는 이미 실행되었습니다.
스레드의 일시 중단을 Eclipse 모드와 동일하게 설정 한 후 다중 스레드 애플리케이션의 디버깅도 시작할 수 있습니다.
간단한 설정은 브레이크 포인트에 직접 이루어지고 스레드에 일시 중단 될 수 있습니다.
아이디어의 기본 설정 변경 : "스레드"라디오 버튼으로 전환하고 "기본값 만들기"버튼을 클릭하십시오.
스레드가 고장 나면 스레드 창을 통해 전환하고 다른 스레드에서 계속 실행할 수 있습니다.
Intellij 아이디어로 여기를 전환하십시오
우리는 메인 스레드와 풀 -1- 스레드 -1이 모두 실행 중이며 어느쪽으로 전환하는 것이 계속 실행될 수 있음을 알 수 있습니다.
현재 멀티 스레드 애플리케이션을 작성하고 Arrylist와 같은 비 스레드-안전 컨테이너에 콘텐츠를 저장 한 다음 왜 스레드 불 모세포인지 및 생생하고 생생한 문제가 발생하는지 관찰 할 수 있습니다.
추신 : 여기서 말씀 드리겠습니다. 이것이 스레드를 만들 때 의미있는 이름을 제시하는 것이 좋습니다. 그렇지 않으면 어떤 스레드가 자신의 스레드인지 구별 할 수 없으며 전환하는 것이 번거 롭습니다.
2 후퇴
여기에 언급 된 후진 실행은 때때로 코드를 디버깅 할 때 각 메소드가 게으르고 단계별 디버깅을 입력한다는 것입니다. 가변 값의 변경을 관찰하면 특정 방법이 후속 조치를 취하지 않으며 값이 변경되므로 다시 수행해야합니다.
후진 실행의 기능에 의존하면 체스를 할 때 체스를 후회하는 기능과 마찬가지로 뒤로 물러날 수 있습니다. 물론,이 백 작업의 이름은 나 자신에 의해 명명되었으며 IDE에서 드롭 프레임이라고합니다.
이 기능을 사용하면 현재 프레임을 삭제 한 후 변경된 변수 값이 복원되지 않습니다. 예를 들어, 목록을 현재 호출 된 메소드로 전달하고 메소드에서 목록에 컨텐츠를 추가하면 메소드가 호출되는 장소로 떨어지면 목록이 이전 상태로 돌아 가지 않습니다.
그러나 메소드가 다시 호출되면 목록이 변경 될 때를 관찰 할 수 있습니다. 최소한 프로그램을 다시 실행할 필요가 없습니다. 동의하지 않으면 후퇴 할 수도 있습니다.
조건부 중단 점 3 개
코드를 디버깅하려면 변경 사항을 관찰하려는 위치에 중단 점을 추가 한 다음 단계별로 조심스럽게 실행해야합니다.
그러나 루프에 있거나 메소드가 여러 스레드에 의해 동시에 호출되는 경우, 신중하게 물러나서 관심있는 콘텐츠가없고 루프의 시작 부분에서 실행되는 것을 발견하지만 여전히 콘텐츠가 없으면 화를 내기 시작합니다.
실제로 중단 점을 추가 할 때 특정 조건을 중단 점에 추가하여 지정된 조건이 충족 될 때만 중단 점이 적용되도록합니다.
Intellij 아이디어에서 중단 점을 마우스 오른쪽 단추로 클릭하면 아래 그림의 조건 상자가 나타나면 지정된 조건을 입력하기 만하면됩니다.
조건부 중단 점을 사용하면 관련이없고 무관심한 코드를 직접 건너 뛸 수 있습니다.
4 조각 코드
나는 이것을 표현해야 할 이름에 대해 생각하지 않았다. 때로는 디버깅 과정에서 갑자기 문제 분석을 돕기 위해 소스 파일과 관련된 코드를 즐겁게하기를 원합니다. 이 시점에서 프로그램을 중지하고 코드를 추가하고 다시 실행합니까?
아이디어에는 코드 스 니펫을 실행하는 기능이 있습니다. 코드 스 니펫을 실행하는 기능이 있습니다.이 코드는 현재 코드의 컨텍스트 내에서 일시적으로 쓰는 코드를 실행할 수 있습니다.
예를 들어, 현재 메소드는 목록에 전달되지만이 메소드에는 후속 조건에서 사용해야 할 요소가 없습니다. 이때 조각 코드 실행 기능을 임시로 사용하고 하나를 추가 할 수 있습니다.
Intellij 아이디어에서 작은 계산기와 같은 위의 버튼은 임시 기능입니다. 클릭 한 후에는 evale expression (ctrl+f8)의 상자 아래 버튼이 나타납니다. 코드를 입력하고 오른쪽 하단에 평가를 클릭하십시오. 결과에 반환 값이 표시됩니다.
이는 변수의 내용을 일시적으로 변경하는 것과 같습니다.
그런 다음 객체의 메소드를 호출하고 함수를 실행하고 속성 값을 얻을 수 있습니다.
5 변수 수정 값보기
각 IDE는 코드를 디버깅 할 때 현재 컨텍스트 변수 값을 관찰 할 수있는 창을 제공합니다. 실제로, 시청 외에도 일부 비정규 기본 유형을 여기에서 직접 수정할 수도 있습니다. 이러한 방식으로, 다중 루프가 실행되면 매번 예상 값을 복원 할 수 있으며 프로그램을 다시 시작할 필요가 없습니다.
일반적으로 사용되는 코드는 자동으로 바로 가기 키를 완성합니다
| 바로 가기 키 | 설명 |
|---|---|
| 샤프 | System.out.println ( ""); |
| PSVM | 주요 방법 |
일반적인 설정
일반적으로 사용되는 바로 가기 키
| 바로 가기 키 | 설명 |
|---|---|
| alt + ctrl + s | 열기 설정 |
| alt + ctrl + shift + s | 프로젝트 structrue를 열어줍니다 |
| Alt + Enter | 빠른 수정 |
| alt + / | 자동 단어 완료 |
| Alt + 삽입 | Setter, Getter, Tostring 등과 같은 코드가 자동으로 생성됩니다. |
| Alt + Shift + V. | 수업 멤버를 다른 수업으로 옮깁니다 |
| Ctrl + Shift + f | 형식 코드 |
| ctrl + shift + u | 케이스 전환 |
| Ctrl + Shift + i | 코드 정의는 현재 컨텍스트에 따라 다음과 같습니다. 예 : 커서가 메소드에서 중지되면 메소드의 정의가 팝업 뷰 방식으로 표시됩니다. |
| Ctrl + 클릭 | 소스 코드로 이동하십시오 |
| 시프트 + 시프트 | 모든 파일을 검색하십시오 |
| ctrl + e | 최근 액세스 한 파일 목록을 엽니 다 |
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.