[vscode] C/C++ 디버깅을 위한 작업 및 환경세팅

froajnzd·2022년 10월 26일
0

visual studio

목록 보기
2/2

지금껏 vscode에서 디버깅할 기회가 없었는데, 아주 큰 프로그램(평소 다뤄왔던 것들을 생각하면 주관적으로 크다)을 실행할 기회가 생겨 vscode로 디버깅하게 되었다.

vscode로 C 및 C++를 디버깅하는 그 방법에 대해 알아보겠다.

1. Download excutable file

https://sourceforge.net/projects/mingw/ 에서 Download.

2. Install gcc

다운로드한 exe 실행파일을 실행
install -> next -> install 클릭하면 다운로드.

다운로드를 완료했다면 continue를 누른다. 그러면 다음과 같은 창이 뜰 것이다.

mingw32-base
mingw32-gcc-g++ 을 선택한다.

3. Download

상단 메뉴바의 installation -> apply Changes 를 누르면 Schedule of Pending Actions 창이 뜬다. 여기서 apply를 눌러준다.

이제 진짜 다운로드가 된다. 살짝 시간이 걸리는 편이다. 체감 5~10분? 그냥 기다리긴 애매한 시간. 그동안 4번을 해준다

4. set PATH

gcc를 입력하면 gcc가 설치된 경로로 찾아가 실행할 수 있게 Window 설정을 마무리해준다.
윈도우 검색창에서 [시스템 환경 변수 편집]을 검색
시스템 속성 창에서 환경변수를 누른다

시스템 변수에서 PATHC:\MinGW\bin을 추가해준다

(gcc 설치 완료 및) 환경변수가 잘 설정됐는지 확인하는 방법은 명령프롬프트에서 gcc -v를 입력했을 때 아래와 같이 나오면 된 것이다.

5. CPP in VSCODE

작업폴더 안에 다음 3개의 파일이 있어야 빌드/디버깅 할 수 있다
1. c_cpp_properties.json
2. tasks.json
3. launch.json

아, C/C++ Extension도 설치해주어야 한다.
왼쪽 Extension에서 C/C++ Extension Pack을 검색하여 해당 확장팩을 설치한다.

6. c_cpp_properties.json 설정

F1을 눌러 팔레트를 연 후 [c/c++ Edit Configurations (UI)]에 들어간다. 설정화면에서 아래를 설정해준다

구성이름: win32
컴파일러 경로: c:/mingw/bin/g++.exe
IntelliSense: windows-gcc-x64

설정을 해주면, .vscode 폴더가 자동 생성되고 c_cpp_properties.json 파일이 생성된다.

다른 json 파일의 기본값들을 자동으로 채워주는 역할

7. tasks.json file 생성

반드시 cpp파일을 열어둔 상태에서 Ctrl+Shift+B를 눌러 C/C++: g++.exe build active file의 맨 오른쪽 톱니바퀴를 클릭한다.
그럼 tasks.json 파일이 생성된다.

Tasks.json이란, Batch File과 같은 파일을 뜻한다.
이 기능으로 복잡한 빌드, 테스트, 배포 명령어들을 하나의 파일로 기록해서 실행이 가능하다. 우리가 방금 만든 작업(task)파일은 Build 명령어가 들어있는 내용이다.

[참고] Task.json 파일의 속성 값 세부 설명
1. label : 명령 팔레트 UI에 보여지는 이름이다.
2. type : process라고 입력하면 실행 파일을 뜻하고, shell 이라고 적으면 bash 또는 powershell을 뜻한다.
3. commend : 실행할 명령어이다.
4. args : 실행할 명령어 뒤에 붙는 argument들이다.
5. options : 기타등등 여러가지 환경 변수값들을 기록하는 곳이다. cwd는 현재 working directory를 뜻한다.
6. problemMatcher : 컴파일러들이 마다 Warning, Error 출력하는 규칙이 다르다. 정규식 표현 등을 이용하여 벹어내는 Warning, Error 들을 파싱하여 “출력”창에 뿌려주게끔 설정한다. 하지만 C/C++ Extention을 쓰기 때문에 자동으로 처리르 해 준다. problemMatcher는 추가설정 없이 “$gcc”만 냅두면, Extention에게 맡겨지게 된다.
7. group : task 파일이 어느 그룹에 속하는지를 나타낸다. 그룹으로 여러 task를 묶을 수있다.

8. launch.json file 생성

마지막 단계. 디버깅을 위한 파일이다.
먼저, cpp 파일을 활성파일로 열어두고 상단 메뉴바에 Run->Add Configuration... 선택한다.
다음으로, C++ (GDB/LLDB) 선택 -> g++.exe 선택한다.
그럼 기본 설정이 된 launch.json 파일이 자동 생성된다~

여기서 externalConsole 을 true로 설정해주면 디버깅시, printf/cout 명령어들이 콘솔에서 실행된다
preLauchTask 설정은 "디버깅 전 g++.exe build active file이라는 아까 만든 build task를 먼저 실행하겠다"는 것이다.

이제, 디버깅을 위한 세팅은 끝났다고 볼 수 있다.

9. More Comfortables

Code Runner

Extension에 Code Runner 검색 -> 설치
설치하고 vscode를 끄고 다시 실행한다. (Extension에 버그가 있어서 껐다 켜줘야함)

  • 결과: 코드 창 상단 오른쪽에 Play(화살표)가 생성된다.

Debugging

set Break point : Cursor on Line for debugging -> F9
start debugging : F5






이번 글도 진짜 끝났다. 아주 오랜만의 정리된 글이라고 생각한다.
정리하니 역시 글쓰는 일은 들이는 시간에 비해 완성 결과물이 성에 안차는 비효율적인 일이라는 생각이 든다.
따라서 최대한 간단명료하게 (필자는 구글링할때 사진과 세줄이하의 글만 보는 아주 이상한 습관이 있음) 그리고 미사여구 없이 단어와 캡처사진만 보면 이해되는 글을 작성하기 위하여 항상 노력한다..

profile
Hi I'm 열쯔엉

0개의 댓글