VSCode 브레이크 포인트를 활용한 디버깅
Description: 디버깅을 할떄 단순히 값을 출력하는것이외에 특정 단계에서의 변수나 객체값 , 함수단위 한줄 단위등 브레이크 포인트를 활용하는 방법에대한 기록입니다.
현재 노트: KR-010.00 a VSCode 브레이크 포인트를 활용한 디버깅
상위 분류: KR-010.00
JavaScript에서 console.log보다 좀 더 멋들어지게 디버깅 하는법
브레이크 포인트를 활용하여 우리는 디버깅을 좀더 편하고 수월하게 할 수 있습니다.
매번 console.log로 찍거나 중간에 if문등을 넣지 않아도 됩니다1
해당 기능을 이해하기 위해선 스텝-오버, 스텝 인투, 스텝아웃, next or continue등의 용어에 대한 이해가 필요하지만 해당 용어들에 대한 정보는 구글에서 더 정확한 의미와 사용 방법, 한계 등이 나오기에 본 페이지에서는 어떤 문제에 쓰였을 때 효과적으로 해결하는지 시나리오 위주로 설명하겠습니다.
IDE 는 Visual Studio Code 기준
(IDE에 따라 단축키, 용어 위치등이 다를 수 있지만 아마 의미상으로는 대부분 비슷할 것입니다.)
Continue : Step-over : Step-into : Step-out -Restart : Stop
Continue 다음 브레이크포인트로 이동
Step-over 함수 뛰어넘기
Step-into 함수 내부에서 한줄씩 실행
Step-out 함수내부에서 현재줄부터 아래까지 한번에 실행
함수안에서 동작하는 변수가 변화하는 값을 보고 싶을때
특정 for 문이 동작하는 상황에서 예를들어 변수값이 변화하는 지를 보고 싶을 때 이때 step-into를 사용하여 한줄씩 확인할 수 있다.
- 먼저 F5디버그 시작을 누른다
- 이후 멈추고싶은 함수의 변수를 드래그한 우클릭한 후 로컬변수를 Add to Watch를 클릭하여 등록해줍니다.
- 이후 step-into를 클릭할때마다 우리가 보고싶은 변수의 변화확인 가능
예시는 단순한 변수하나에 숫자타입이지만 변수가 여러개이거나 복잡한 데이터 타입도 쉽게 확인가능
function exampleFunction() {
for (let i = 0; i < 5; i++) {
let variable = i * 2;
}
}
함수A이후 함수B의 값은 넘기고 , 함수C전까지의 상태를 보고 싶을 때
이때는 스텝오버를 활용할 수 있다. 여러 함수가 있을때 함수내부의 세세함보다는 중간에 뛰어넘고 싶을 때 사용중 말그대로 (over)할때 사용
다음은 display전 함수중간인 middle의 결과값을 건너뛰는 데에 step-over사용
- 동일하게 브레이크포인트 설정후 F5디버그시작
- 체크하고싶은 함수전까지 step-over를 통해 뛰어넘기
- 확인하기 전 함수까지 체크
function exampleFunction(arr) {
for (let i = 0; i < 5; i++) {
arr[i] = i;
}
}
function middle(arr) {
for (let i = 0; i < 5; i++) {
arr[i] = i*2;
}
}
function display (arr){
for (let i = 0; i<5 ;i++){
console.log (arr)
}
}
let test = new Array(5);
exampleFunction(test)
middle(test)
display(test)
결론
좀더 잘쓰면 복잡한 속성, 내용, 변수등에 적절히 사용하면 console.log를 안써도 되고 또 표기에서 보이는 것보다 정확한 데이터 그리고 데이터의 변화과정가 에러가 뜨는경우도 제대로 확인가능한다.