인텔리제이 디버깅
원하는 코드에 브레이크포인트를 찍은 후 디버그모드를 실행한다.
빨간 동그라미 부분이 브레이크 포인트이고, 디버그모드상태에서 추가적으로 브레이크포인트를 찍을 수 있다.
1번으로 쳐둔 공간이 브레이크 포인트까지 오기까지 진행된사항들.
2번으로 쳐둔곳이 브레이크 포인트가있는곳의 생성된 지역변수 및 스태틱변수에 관련된 정보들이다.
Resume Program
1번 쳐진 곳이 Resume program이라는 버튼이고 해당버튼을 누르면 다음 브레이크포인트로 이동하게 된다.
브레이크포인트로 가는 동안의 작업들은 순식간에 진행되고 결과만 보여준다.
다음 브레이크포인트까지 진행되는 작업을 확인하고 싶으면 step over를 눌러 한줄씩 실행되는걸 확인한다.
브레이크포인트가없는데 resume program을 누르면 프로그램이 종료된다.
Step Over
Step Over라는 버튼으로
"다음 줄"로 이동한다!
한줄씩 실행되므로 프로그램이 어떤식으로 진행되는지 천천히 확인하기 편하다.
하지만 해당 줄의 메소드가 있다면 그 메소드의 내부 실행 과정을 짚어주면서 지나가진않고 결과만 딱보여주는느낌
Step Into
step into 버튼으로 한줄씩 지나가면서 , 그 줄에서 실행되는 메소드내부로 들어가 실행과정을 살펴보게끔한다.
ex) new ~ 와같은 생성자나 , combination(int ~) 와 같은 메소드 실행시
살펴볼 메소드가 여러개면 선택할 수 있게끔한다.
Step Out
step out은 step in으로 들어간 메소드 진행상황에서 빠져나올수 있게하는 버튼
빠져나오면서 해당 메소드를 실행시키면서 나온다.
또는 과정을 살펴보는걸 그만두고 다음 브레이크포인트로 이동할때 사용하면 편할듯하다.
Run to Cursor
현재 깜빡이는 커서가 존재하는곳으로 이동한다. (브레이크포인트를 찍지않고 원하는 위치를 확인하고 싶을때 사용)
Condition
브레이크포인트에 오른쪽 클릭하면 , 해당 브레이크포인트가 활성화되는 조건을 걸 수 있다.
해당 조건에서만 브레이크포인트에 멈춘다는뜻, 반복문 같은 경우 어떤값이 입력됬을때를 확인하고싶다면 사용한다.
-> 그냥 몇번째 인덱스를 확인하고싶은거라면 반복문에 break point 걸고 옆에 인덱스값을 set value하면된다.
조건을 입력해주면 브레이크포인트에 물음표 모양이 생긴다.
Evaluate Expression
해당 브레이크포인트에서 내가 원하는 명령어를 실행시킬 수 있다.
변수의 값들을 바꾼다던지 , 리스트같은곳에 원하는 값들을 추가하고 뺀다던지
실제로 반영되니까 실행되므로 잘 사용해야한다.
아니면 저 체크한분에 확인하고 싶은값이나, 어떤 조건이 있다면 입력해두면 된다.
값을 더하거나 빼고싶거나 이러면 저기다가 해당 코드 입력후 엔터
변수값이나 , 어떤 조건이 true인지 false인지 밑에 두고 보고싶다면( 밑에 안경모양 == watch)
컨트롤 + 쉬프트 + 엔터를 눌러서 추가해준다.
그러면 step over,step in 등 진행될때마다 밑에서 값의 현재사항을 보여준다!
팁
해당 브레이크포인트에서 에러가 발생했다 -> 핸들러때문에 오류관련된 코드에 끌려감 -> resume으로 다시 원래 브레이크 포인트로 돌아온다. -> 해당 브레이크포인트에서
evaluation expression 버튼에가서 입력하든 위에 공간에 입력하던 , 오류가 났던 코드부분을 입력해봐서
Stack trace를 확인한다(어디서 오류가 났는지 확인할 수 있는부분)
출처,참고,더 자세한 정보
댓글