기본적인 세팅은 아래 링크를 참고하면 된다.
https://bullie.tistory.com/5?category=1013242
VSCode로 알고리즘 문제 풀던 중 디버깅을 하려고 했는데, 위의 기본 세팅만으로는 디버깅이 안된다.
.vscode 디렉토리에 만들어진 tasks.json파일을 열고, 알맞은 언어(c 혹은 c++)의 args에 "-g"를 추가 해 준다.
저장하고 작성하던 .c나 .cpp파일로 돌아와 원하는 위치에 브레이크 포인트를 걸어준다.
15라인 숫자 옆에 빨간 점이 생기는데, 그게 브레이크 포인트이다.
저 부분을 누르거나 라인을 클릭하고 f9를 누르면 브레이크 포인트를 지정할 수 있다.
이후 디버깅을 누른다.(f5 혹은 위 사진의 Run and Debug)
디버깅을 하면 위에서 걸었던 브레이크 포인트에서 실행을 멈춘다.
위처럼 C++ (GDB/LLDB)를 누르고
위처럼 g++.exe를 누른다.
위처럼 터미널에서 해당 코드에서 넣어야 하는 입력값을 넣어주고 엔터를 누르면
위와같은 창이 열린다.
이름대로 Locals는 탐색하는 구간의 지역변수들이다.
참고로 전역변수나 구간 안에 포함되지 않는 변수들은 저기에 표현되지 않는데, 아래 WATCH부분에 마우스 갖다 대면 +가 나온다.
그걸 누르고 원하는 변수 이름을 넣으면 해당 변수도 포함된다.
이후 라인별로 코드를 읽어 실행하게 되는데, f11은 step into, f10은 step over이다.
둘 다 한 라인씩 읽지만, step into는 함수를 만나게 되면 함수 안으로 들어가 한 줄씩 읽고, stop over는 함수를 만나면 함수를 다 실행시키고 다음 라인으로 간다.
예를 들어서 cout으로 뭔가를 출력하는 라인에 f10을 누르면 출력되고 다음 라인을 실행할 준비를 하지만,
f11을 누르면 iostream의 cout 함수를 찾아가서 하나하나 실행하게 된다.
둘은 상황에 맞춰서 사용하면 된다.
이번에 나의 경우에는 f10으로 읽다보니 st라는 스택의 top을 읽는데, st에 아무 값도 없어서 실행이 안되던 거였다.
왼쪽 Locals의 st에 아무것도 없는데 노란 줄 쳐진 라인을 보면 st의 top을 읽으려고 한다...
뭐가 틀렸는지 알았으니 코드를 수정하면 된다.
'개발 > 개발 툴' 카테고리의 다른 글
VSCode에서 C/C++ 시작하기 (0) | 2021.07.15 |
---|---|
VSCode에서 JAVA 시작하기 (5) | 2021.07.15 |