디버깅 개념(VS Code)

Marco·2021년 11월 1일
2

디버깅(영어: debugging) 또는 디버그(영어: debug)는 컴퓨터 프로그램 개발 단계 중에 발생하는 시스템의 논리적인 오류나 비정상적 연산(버그)을 찾아내고 그 원인을 밝히고 수정하는 작업 과정을 뜻한다(Wiki)

1. breakpoints

  • 브레이크포인트(중단점)를 이용하여 에러가 발생한 범위를 좁혀서 원인을 찾을 수 있다. 작동하던 프로그램을 강제로 중단시키고 상태를 확인하는 것이다. 브레이크포인트 설정 후 디버깅 모드 실행 시, 포인트마다 순차적으로 실행이 일시적으로 멈추면서, 그 시점의 변수 상태 등을 확인할 수 있다.
    • 브레이크포인트에서 멈췄을 때, 변수를 확인하거나 코드를 이어서 실행한다.
  • VS Code에서 브레이크포인트를 삽입하려면 삽입하고 싶은 코드 라인에서 코드라인 숫자 왼쪽 빈칸을 클릭하면 되고, 이를 통해 빨간색 브레이크포인트 나타난다. 또는 해당 코드라인에 커서를 올려두고 F9를 눌러서 브레이크포인트 삽입 및 제거를 할 수 있다.
  • 브레이크포인트를 삽입했다면, 디버깅 시작 버튼 또는 F5를 눌러 디버깅을 시작한다. 참고로 Ctrl+F5는 디버깅하지 않고 실행이다(빨간점을 무시하고 실행).
  • 디버그가 시작되면 첫 번째 브레이크포인트에 노란 화살표가 들어오며, 이는 이 포인트에서 프로그램이 중단됐다는 것이다. 다음 브레이크포인트까지 실행하려면 다시 F5를 누른다.
  • 진행하다보면 예외가 발생함이라는 창과 함께 프로그램이 중단될 수 있는데, 이를 통해 에러가 발생한 지점이 많이 좁혀졌음을 알 수 있다. 더 상세히 살피려면, F11을 눌러 한 줄 한 줄 코드를 실행하여 확인한다.
    • 변수를 확인하려면, locals(지역)창, watch(조사식)창, auto(자동)창에서 확인한다.
  • 디버깅을 중지하려면 Shift + F5를 누른다.

2. watch 사용법

  • watch(조사식)창은 특별히 보고싶은 변수만 모아서 볼 수 있는 창이다. 변수 명에서 우클릭하고 Add Watch(조사식 추가)를 하면 조사식창에서 상태를 확인할 수 있다. 변수끼리의 연산을 쓸 수 있다.
    • locals(지역)창에서는 현재 실행중인 메서드의 지역변수 상태를 확인할 수 있는데, locals에서 확인되지 않는 전역변수 상태는 watch(조사식)창에서 추가하여 확인할 수 있다.

3. call stack의 의미

  • call stack(호출 스택)에서는 함수의 호출 흐름을 볼 수 있다. 호출 스택은 이름 그대로, 함수가 호출되는 순서대로 정보가 쌓인다. 함수들을 타고 들어가다가 어디에서 오류가 발생했는지 쉽게 알아낼 수 있다.

4. Step over / Step into/ Step out

continue(F5)

  • 다음 브레이크포인트로 이동한다.

Step over(F10)

  • 브레이크포인트에서 다음 라인으로 이동한다. 다음 라인이 함수일 경우 그 함수 내부로 이동하지 않고 바로 실행한다.

Step into(F11)

  • 다음 라인이 함수일 경우 그 함수 안으로 들어가서 함수 내부의 동작을 한줄씩 실행한다.

Step out(Shift + F11)

  • 함수를 끝까지 실행시키고 호출시킨 곳으로 되돌아 간다. 즉, 현재 함수의 나머지 부분을 실행시키고 함수의 리턴이 완료된 곳에서 멈춘다. step into를 통해 함수 내부로 들어간 뒤 바로 return으로 넘어가고 싶을 때 사용하면 유용하다.
profile
블로그 이사 🚚 https://wonsss.github.io/

0개의 댓글