Search
Duplicate
🚀

VSC 디버깅툴 찍먹1 - 설치/환경설정

간단소개
visual studio code에 디버거를 마련해보자!
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
VScode
debug
태그
Development
플러그인
VSCode
debug
Scrap
8 more properties

아직도 printf로 일일히 찍고 있니….?

현재 cli라는 클래스에는 여러 변수들이 들어가있다.
함수호출도중 에러가 발생하는데 아무래도 안에 들어있는 값을 확인해야 원인을 파악할 수 있을 것 같다.
이럴때 보통 가장 쉽게 사용하는 것이 printf()로 클래스의 현재값을 해당 줄에서 표시해보는 것이다.
확인하려는 값이 적거나 구현이 복잡하지 않은 프로젝트에서는 그렇게 하여도 무방하다.
하지만 한 클래스에 100개의 멤버 변수가 복잡하게 각자의 값을 시시각각 바꿔가며 동작하고 있다면 어떨까?
그 클래스가 100줄이 넘는 함수에서 한줄마다 바뀌는 상태를 실시간으로 확인할 수 있을까?
아마 무척 고되고 지루한 작업일 것이다.
그렇지만 VSC에 디버거를 셋팅해둔다면, 여러분은 이제 두려울 것이 없다.
이런식으로 특정 행을 실행할때마다 바뀌는 [변수]값을 확인할 수 있으며,
에러가 발생한 경우 어디에서 그 문제가 발생하였는지 [호출스택]에서 확인할 수 있다.
또한 디버거탭에서 제공하지 않는 정보도 [디버그 콘솔]을 통해 원하는 값을 print해서 확인하는 것도 가능하다.
그렇다면 이제 VSC에서 디버거환경을 셋팅해보자.
먼저 익스텐션을 2개 설치해야 한다.
VSC 좌측탭에서 extension 아이콘을 클릭하고(빨간화살표)
C/C++ 익스텐션을 설치해준다.
2번째로 설치할 익스텐션은 CodeLLDB이다.
LLDB가 아니고 codelldb이다. 아이콘이 용꼬리용용인 걸로 꼭 설치해주자.
디버거에 필요한 설치는 모두 끝났다.
이제 디버거 환경이 필요한 프로젝트에서 환경셋팅만 해주면 된다.
이제 디버거를 동작시킬 프로젝트의 폴더로 이동한다.
현재 상태에서 요 아이콘을 클릭해보면,,,
아직 디버거환경설정 파일을 만들어주지 않았기 때문에 이런식으로 표시가 되어있을 것이다.
[launch.json 파일 만들기] 를 클릭한다.
디버거 선택항목에서 금방 설치한 LLDB를 클릭한다.
실행시킬 프로그램명을 “program”에 명시해주면 된다.
이때 ${workspaceFolder}는 VSC에서 열고있는 경로로 설정된다.
실행파일이 VSC로 open한 경로의 root에 존재한다면
“${workspaceFolder}/a.out”과 같은 형식으로 적어주면 된다.
본인이 원한다면 모든 경로를 지우고 절대경로로 입력해도 무방하다.
push_swap같이 실행인자를 넣어야 할 경우, “args”에 실행인자를 넣어주면 된다.
{ // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요. // 기존 특성에 대한 설명을 보려면 가리킵니다. // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요. "version": "0.2.0", "configurations": [ { "type": "lldb", "request": "launch", "name": "Debug", "program": "${workspaceFolder}/a.out", "args": ["1", "2", "3", "4", "5"], "cwd": "${workspaceFolder}" } ] }
JSON

주의

실행할 프로그램을 컴파일 할때, -g 옵션을 넣어서 컴파일해야 한다.
이제 원하는 곳의 줄 수 왼쪽을 클릭하여 breakpoint(중단점)을 설정하고 실행파일이 해당 줄을 실행할때 중단점을 설정한 행을 실행하기 전에 멈추게 된다.
왼쪽 위 [실행 및 디버그]항목의 오른쪽에 있는 초록색 플레이 아이콘을 클릭하여 디버깅을 시작하자.
이렇게 셋팅은 끝났는데 어떻게 사용해야 되냐고?