>  기사  >  Java  >  Intellij IDEA에서 디버그를 사용하는 방법에 대한 그래픽 소개

Intellij IDEA에서 디버그를 사용하는 방법에 대한 그래픽 소개

黄舟
黄舟원래의
2017-09-06 09:50:233187검색

 디버그는 코드의 실행 프로세스를 추적하는 데 사용됩니다. 일반적으로 프로그램 실행 중에 예외가 발생합니다. 디버그 모드를 활성화하면 실행 프로세스 중 예외 위치와 매개변수 변경 사항을 분석하고 찾을 수 있습니다. 일반적으로 디버그 모드를 활성화하여 코드의 실행 프로세스를 추적하고 타사 프레임워크의 소스 코드를 학습할 수도 있습니다.

 그래서 Intellij IDEA에서 Debug 사용법을 배워보세요. 그 안에는 주로 다음 내용이 포함되어 있습니다:

  1. 디버그 소개

                                     uloustell_Intellij, 지능형 스텝인

  여섯. 중단점 조건 설정

  VII. -스레드 디버깅

  여덟. 롤백 중단점

  아홉. 인터럽트 디버그

 

먼저 IDEA의 디버그 모드 인터페이스를 살펴보겠습니다.

 다음은 IDEA에서 디버그 모드를 시작하고 중단점을 입력한 후의 인터페이스입니다. Windows의 경우 Mac의 아이콘 및 기타 아이콘이 약간 다를 수 있습니다. 아래 그림에 표시된 8곳에 대해 간단히 이야기해보겠습니다.

  ① 디버그 모드에서 서비스를 시작하고, 왼쪽 버튼을 누르면 실행 모드가 시작됩니다. 개발 중에는 언제든지 코드 디버깅을 용이하게 하기 위해 일반적으로 디버그 모드를 직접 시작합니다.

 ② 중단점: 왼쪽 줄 번호 열을 마우스 왼쪽 버튼으로 클릭하거나 단축키 Ctrl+F8을 사용하여 중단점을 설정/취소할 수 있습니다. 중단점 줄의 색상은 직접 설정할 수 있습니다.

 3 디버그 창: 액세스 요청이 첫 번째 중단점에 도달한 후 디버그 창이 자동으로 활성화됩니다. 자동으로 활성화되지 않으면 그림 1.2와 같이 설정으로 이동하여 설정할 수 있습니다.

 4 디버깅 버튼: 총 8개의 버튼이 있습니다. 디버깅의 주요 기능은 해당 버튼 위에 마우스를 올리면 해당 단축키를 볼 수 있습니다. 그림 1.4에 표시된 것처럼 동일한 해당 기능을 실행 메뉴 모음에서 찾을 수 있습니다.

 ⑤ 서비스 버튼: 여기에서 서비스 종료/시작, 중단점 설정 등을 할 수 있습니다.

 ⑥메서드 호출 스택: 디버깅을 위해 스레드에서 전달한 모든 메서드가 여기에 표시됩니다. 오른쪽 상단의 [모든 프레임 표시] 버튼을 확인하면 다른 클래스 라이브러리의 메서드는 표시되지 않습니다. 여기에는 많은 방법이 있습니다.

 7 변수: 변수 영역에서는 현재 중단점 이전에 현재 메소드의 변수를 볼 수 있습니다.

 8 Watches: 변수를 보려면 변수 영역의 변수를 Watches로 끌어서 볼 수 있습니다.

  [그림 1.1]

  

    [그림 1.2]: 설정에서 Show debug window on breakpoint를 선택하여 항목을 요청합니다. 디버그 창은 중단점에 도달한 후 자동으로 활성화됩니다

 

 [그림 1.3]: IDEA 하단에 도구 모음이나 상태 표시줄이 표시되지 않는 경우 도구 모음을 표시하면 더 쉽게 열 수 있습니다. 우리가 사용하기 위해. 이 네 가지 옵션을 직접 시도해 볼 수 있습니다.

 

  [그림 1.4]: 메뉴바 Run에 디버깅에 해당하는 기능이 있으며, 해당 단축키를 확인할 수 있습니다.

 

2. 기본 사용법 및 단축키

디버그 디버깅 기능은 주로 그림 1의 4번과 5번 버튼의 두 그룹에 해당합니다.

1. 우선 첫 번째 버튼 그룹에 대해 이야기해 보겠습니다. , 총 8개의 버튼이 있으며, 왼쪽부터 다음과 같습니다.

   [그림 2.1]

   > 실행 지점 표시(Alt + F10): 커서가 다른 줄이나 다른 페이지에 있을 경우 클릭 이 버튼을 누르면 현재 코드가 실행되는 줄로 이동합니다.

  > Step Over (F8) : 한 줄씩 넘어가서 아래로 내려갑니다. 이 줄에 메소드가 있으면 해당 메소드를 입력하지 않습니다.

  > Step Into(F7): 현재 행에 메소드가 있으면 해당 메소드를 입력할 수 있습니다. 일반적으로 사용자 정의 메소드를 입력하는 데 사용되며 공식 클래스 라이브러리 메소드는 입력되지 않습니다. 25번째 줄의 put 메소드.

  > 강제 실행(Alt + Shift + F7): 강제 실행, 기본 소스 코드를 볼 때 이 방법을 사용하여 공식 클래스 라이브러리에 들어갈 수 있습니다.

  > Step Out (Shift + F8) : Step out, 메소드 호출 지점까지 들어온 메소드에서 빠져나옵니다.

   > 프레임 삭제(기본값 없음): 롤백 중단점, 다음 장에서 자세히 설명합니다.

   > 커서까지 실행(Alt + F9): 커서까지 실행하고 보려는 줄에 커서를 놓은 다음 이 기능을 사용하면 코드가 중단점 없이 커서 줄까지 실행됩니다.

  > 표현식 평가(Alt + F8): 표현식을 계산합니다. 자세한 내용은 다음 장에서 설명합니다.

 2. 두 번째 그룹의 버튼은 총 7개로 위에서부터 다음과 같습니다.

  [그림 2.2]

  > 'xxxx' 재실행: 프로그램을 다시 실행하면 서비스가 종료되고 다시 시작됩니다. 프로그램.

  > '기술' 애플리케이션 업데이트(Ctrl + F5): 프로그램 업데이트, 일반적으로 이 기능은 코드가 변경된 후에 실행될 수 있습니다. 이 기능의 해당 작업은 그림 2.3에 표시된 대로 서비스 구성에 있습니다.

   > 프로그램 재개(F9): 예를 들어 20행과 25행에 두 개의 중단점이 있고 현재 20행까지 실행 중이라면 F9를 눌러 다음 중단점(예: 25행)으로 이동합니다. ). OK) 그런 다음 나중에 중단점이 없으므로 F9를 눌러 전체 프로세스를 실행합니다.

  > 프로그램 일시 중지: 프로그램을 일시 중지하고 디버그를 활성화합니다. 아직 구체적인 사용법은 발견되지 않았습니다.

  > 'xxx' 중지(Ctrl + F2): 두 번 연속 누르면 프로그램이 종료됩니다. 서비스를 닫았다가 다시 시작하면 포트가 사용 중이라고 보고되는 경우가 있습니다. 이는 서비스가 완전히 닫히지 않았기 때문에 모든 JVM 프로세스를 종료해야 하기 때문입니다.

  > 중단점 보기(Ctrl + Shift + F8): 이후 장에서 다룰 모든 중단점을 봅니다.

   > 중단점 음소거: 이를 선택하면 모든 중단점이 회색으로 바뀌고 프로그램을 직접 실행하려면 해당 중단점이 무효화됩니다. 다시 클릭하면 중단점이 빨간색으로 바뀌고 적용됩니다. 특정 중단점만 비활성화하려면 그림 2.4와 같이 중단점을 마우스 오른쪽 버튼으로 클릭하여 활성화를 취소하면 이 줄의 중단점이 비활성화됩니다.

   [그림 2.3]: 업데이트 프로그램, 'Update' 액션에서는 업데이트 작업을 수행할 때 수행되는 작업을 일반적으로 '클래스 및 리소스 업데이트', 즉 클래스 및 리소스 파일 업데이트를 선택합니다. ㅋㅋㅋㅋㅋ                                              JRebel을 활성화하는 방법은 마지막 장에 첨부되어 있습니다. R 아래의 on Frame Deactiving은 IDEA 창이 포커스를 잃을 때 트리거됩니다. 즉, IDEA에서 브라우저로 전환하면 IDEA가 자동으로 이를 지원합니다. 일반적으로 Do Nothing을 설정하면 빈번한 전환이 리소스를 소비합니다. 더 많은 자원. ㅠㅠ      (그림 2.4)] 저는 대부분의 사람들이 이곳을 알고 있다고 믿습니다.

 1. IDEA에서는 다음과 같이 매개변수가 위치한 줄 뒤에 현재 변수의 값이 표시됩니다.

 

[그림 3.1]

  2. 해당 파라미터에 커서를 올리면 현재 변수 정보가 표시됩니다. 그림 3.3과 같이 세부정보를 열려면 클릭하세요. 저는 주로 이 방법을 사용하는데 빠르고 편리합니다.

 

[그림 3.2]

 

[그림 3.3]

  3. View in Variables, 현재 메소드의 모든 변수를 표시합니다.

 

[그림 3.4]

 4. Watches에서 New Watch를 클릭하고 보려는 변수를 입력합니다. 또는 변수에서 Watche로 끌어서 볼 수도 있습니다.

 [그림 3.5]

 시계가 없으신 분들은 아래 사진과 같은 곳일 수도 있습니다.

  [그림 3.6]

  [그림 3.7]

IV. 계산식

앞서 언급한 계산식은 그림 4.1의 Evaluate Expression(Alt + F8) 버튼이다. 이 작업을 사용하면 정보를 인쇄하지 않고 디버깅하는 동안 표현식 값을 계산할 수 있습니다.

 

[그림 4.1]

  1. Alt + F8 또는 버튼을 누르거나, 수식을 선택한 후 Alt + F8을 누르면 아래와 같이 수식을 계산할 수 있는 창이 팝업되고, Enter를 누르거나 Evaluate를 클릭하면 됩니다. 표현식 값을 계산합니다.

 이 표현식은 일반 변수나 매개변수일 수 있을 뿐만 아니라, 코드 줄에서 여러 메소드를 호출할 때 메소드의 반환 값을 이런 식으로 볼 수 있습니다.

  [그림 4.2]

  2. 변수 설정 계산식 상자에서는 변수의 값을 변경할 수 있는데, 가끔은 다양한 값을 디버그하기에도 편리하죠?

  [그림 4.3]

5. 스마트 입력

생각해 보세요. 한 줄의 코드에는 여러 가지 방법이 있는데 어떻게 특정 방법만 선택하여 입력할 수 있습니까? 앞서 Step Into(Alt + F7)나 Force Step Into(Alt + Shift + F7)를 사용하여 메소드를 입력할 수 있다고 말씀드렸는데, 이 두 작업은 메소드 호출 순서에 따라 순차적으로 입력되기 때문에 더욱 번거롭습니다.

  그렇다면 Smart Step Into는 매우 편리합니다. Smart Step Into, 이 기능은 그림 5.1

 과 같이 Run, Smart Step Into(Shift + F7)에서 볼 수 있습니다. [그림 5.1]

  Shift + F7을 누르고, 그림 5.2와 같이 현재 중단점 줄을 자동으로 찾고 입력해야 하는 메서드를 나열합니다. 메서드를 클릭하여 메서드를 입력합니다.

 방법이 하나만 있다면 Force Step Into와 비슷하게 직접 입력하세요.

  [그림 5.2]

6. 중단점 조건 설정

중단점 조건을 설정하여 조건이 만족되면 중단점에서 멈추고, 그렇지 않으면 바로 실행됩니다.

보통 상대적으로 큰 컬렉션이나 배열을 순회하고 루프에 중단점을 설정할 때 변수의 값을 하나씩 살펴봐야 합니까? 피곤할 것입니다. 어쩌면 놓쳤을 수도 있고 다시 할 가치가 있습니다.

 1. 그림 6.1과 같이 중단점을 마우스 오른쪽 버튼으로 클릭하여 현재 중단점의 조건을 직접 설정합니다. 중단점은 존재를 true로 설정한 경우에만 적용됩니다.

  [그림 6.1]

  2. 중단점 보기(Ctrl + Shift + F8)를 클릭하면 모든 중단점을 볼 수 있습니다.

 Java Line Breakpoints는 모든 중단점을 표시합니다. 중단점 조건을 설정하려면 오른쪽에 있는 조건을 확인하세요.

   Check Log 메시지를 콘솔에 보내면 그림 6.3

                                                                                                                                부 콘솔. ㅋㅋㅋㅋㅋ                           는 오른쪽 필터에 있습니다.

 인스턴스 필터 : 인스턴스 필터링, 인스턴스 ID(그림 6.5의 인스턴스 ID)를 입력했는데 여기서는 성공하지 못했습니다. 이유를 아는 친구는 메시지를 남길 수 있습니다.

  클래스 필터: 클래스 필터링, 클래스 이름 기반 필터링도 실패했습니다...

  패스 횟수: 루프에 사용되며, 중단점이 루프에 있는 경우 이 값을 설정할 수 있으며 루프가 몇 번 멈출지 설정할 수 있습니다. 중단점을 설정하면 후속 루프가 중단점에서 중지됩니다.

   [그림 6.4]

  

 

     [그림 6.5]

  

   4. 예외 중단점을 설정하는 경우. 차단해야 할 예외가 프로그램에서 발생하면 예외 라인이 자동으로 위치됩니다. .

 그림 6.6과 같이 + 기호를 클릭하여 Java 예외 중단점을 추가하고 예외 중단점을 추가합니다. 그런 다음 그림 6.7과 같이 중단점이 필요한 예외 클래스를 입력합니다. 그러면 Java 예외 중단점에서 추가된 예외 중단점을 볼 수 있습니다.

그림 6.8과 같이 여기에 NullPointerException 예외 중단점을 추가했습니다. 널 포인터 예외가 발생한 후 자동으로 널 포인터 예외 행에 위치합니다.

   [그림 6.6]

  

  [그림 6.7]

 

  [그림 6.8]

 

7. 다중 스레드 디버깅

일반적으로 디버깅을 할 때는 한 스레드에서 단계별로 진행합니다. 하지만 디버깅할 때 다른 요청을 시작할 수도 없는 경우가 가끔 있습니다.

디버깅 시 IDEA의 기본 차단 수준이 ALL이기 때문에 다른 스레드는 현재 디버깅 스레드가 완료될 때만 실행됩니다. 그림 7.1과 같이 View Breakpoints에서 Thread를 선택한 다음 Make Default를 클릭하여 기본 옵션으로 설정할 수 있습니다.

  [그림 7.1]

 

  그림 7.1의 프레임 드롭다운 목록에서 아래와 같이 디버그 스레드가 두 개 있습니다. , 다른 디버그 스레드를 입력합니다.

  [그림 7.1]

 

8. 롤백 중단점

  디버깅할 때 다시 요청하지 않고 프로세스를 다시 진행하고 싶나요?

  1. 먼저 그림 8.1과 같이 이 메서드의 호출 스택을 알아보세요. 먼저 DemoController의 insertDemo 메서드를 입력하도록 요청한 다음 현재는 다른 호출을 무시합니다. 현재 중단점이 있는 메서드입니다.

  [그림 8.1]

  

  2. 중단점 롤백

  소위 중단점 롤백은 실제로 이전 메서드 호출의 시작 부분으로 롤백하는 것입니다. IDEA에서는 테스트가 한 줄씩 롤백하거나 Return to할 수 없습니다. 이전 중단점이 아니라 이전 메서드로 전환됩니다.

  롤백하는 방법에는 두 가지가 있습니다. 하나는 타사 클래스 라이브러리의 다른 메서드를 포함하여 호출된 메서드에 따라 점진적으로 롤백하는 프레임 드롭 버튼(그림 8.2)입니다(모든 프레임 표시 취소 버튼이 표시됩니다). 그림 8.3에 표시된 대로 타사 클래스 라이브러리의 메서드입니다.

 두 번째 방법은 콜스택 메소드에서 롤백할 메소드를 선택하고 우클릭 후 Drop Frame을 선택한 후(그림 8.4) 해당 메소드의 이전 메소드 호출로 롤백한 후 F9(Resume Program)를 누르는 것이다. ) 프로그램이 이 메소드의 중단점에 진입한 것을 볼 수 있습니다.

 하지만 한 가지 주의할 점은 중단점 롤백은 다시 프로세스를 거쳐야 한다는 점입니다. 이전에 일부 매개변수/데이터의 상태가 변경된 경우 개체, 컬렉션, 업데이트된 데이터베이스 등 이전 상태로 롤백할 수 없습니다. 데이터 그리고 그 이상.

    그래프 [8.2]

   

                            etto [8.4] 디버깅, 나머지 과정은 다시 떠나지 마세요.

때로는 전달된 매개 변수가 잘못된 것을 확인한 후 후속 프로세스를 진행하고 싶지 않습니다. 이 요청을 중단하는 방법(후속 프로세스에서 데이터베이스 데이터가 삭제됩니다...) 서비스를 닫고 프로그램을 다시 시작하시겠습니까? 글쎄, 나도 그랬었지.

정확히 말하면 요청을 직접 중단할 수 있는 방법은 찾지 못했지만(서비스 종료 외에) 그림 9.1과 같이 강제 반환, 즉 강제 반환을 통해 후속 프로세스를 피할 수 있습니다.

  Force Return을 클릭하면 Return Value창이 뜹니다. 제가 만든 메소드의 return type이 Map이므로 여기서 직접 결과를 반환하여 강제로 반환하므로 더 이상의 단계는 수행되지 않습니다. 또는 새로운 HashMap<>()을 사용할 수도 있습니다.

   [그림 9.1]

  

          

 

구성 파일은 핫 업데이트될 수 있습니다. 가끔 서비스가 오랫동안 열려 있거나 많은 파일이 변경된 경우 핫 업데이트가 적용되지 않아 서비스를 다시 시작해야 하는 경우가 있습니다.

 다음은 무료로(크랙되지 않은) 영구 사용 권한을 얻기 위해 인터넷에서 본 방법에 대한 간략한 설명입니다. 이 방법을 더 이상 사용할 수 없게 될지는 확실하지 않습니다.

 ① 먼저 Facebook 또는 Twitter 계정이 필요합니다(Twitter가 가장 좋습니다)

 ② 이 웹사이트: https://my.jrebel.com/에 들어가서 그림 10.1과 같이 로그인하세요

 3 그런 다음 설치 및 활성화에서 영구 활성화 코드를 받으실 수 있습니다.

 4 그림 10.3과 같이 설정에서 Jrebel에 활성화 코드를 설정하세요. JRebel 플러그인이 설치되어 있지 않은 경우 먼저 Plugins에서 JRebel 플러그인을 검색하여 설치하세요.

 [그림 10.1]

 

  [그림 10.2]

  

  [그림 10.3]

 

위 내용은 Intellij IDEA에서 디버그를 사용하는 방법에 대한 그래픽 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.