mac 환경 vscode 에서 C언어 개발환경 세팅 (feat.디버깅)

keepgoing-hyeonsoo·2021년 9월 19일
12

복학을 하게되면서 대부분의 수업들이 C/C++ 위주이기 때문에 C/C++ 개발환경 세팅이 필요했다.

Windows 유저라면 아마도 거의 Visual Studio 를 사용할 것 같고, Mac에도 Visual Studio 가 있긴 하지만 Mac 에서는 C/C++ 개발이 지원 안한다. (대체 왜..?)

어쨌든 그래서, vi 에디터를 쓰지 않는다는 가정하에 mac 에서 쓸 만한 C 개발환경은

1. CLion
2. Xcode
3. VS code

정도인데, 일단 세 가지 다 조금씩 써본 결과 VS code 로 결정했다.

CLion 은 같은 회사에서 만든 IntelliJ UI 에 익숙하다면 CLion 을 한 번 써보는 것도 괜찮을듯 하다. 근데 개인적으로 IntelliJ UI 가 어딘가 불편해서 패스..

Xcode 는 일단 서드파티가 아니고 애플에서 지원해주는 IDE이긴 한데, 이것도 나와 맞지 않는 느낌이여서 패스..

결국 돌고돌아 VS code 였는데, 위에 2 개와는 다르게 IDE 가 아닌 에디터라서 가볍고 익숙했던 게 제일 컸다.

IDE 같은 경우는 기본 단위가 프로젝트이다. 그래서 매번 프로젝트를 새로 파거나, 그게 아니면 CMake 설정을 수정하거나 해야하는데 이게 좀 귀찮다. ( PS문제나, 단일C파일 개발 위주인 나 기준 )

그런데 VS code 는 별도 프로젝트 설정 없이 c 파일에서 바로 컴파일을 할 수 있는게 최대 장점이였다. 그냥 한 폴더에다가 C파일 여러 개 다 넣어놔도 상관이 없다!
다만 컴파일,빌드,디버깅 세팅 관련해서 초기세팅이 좀 필요하긴 하다.

각설하고 VS code 에서 C 개발환경 세팅을 해봅시다.

컴파일 세팅

Code Runner 익스텐션은 실행 시 알아서 gcc 명령어를 수행해준다. 필수템

그 전에 gcc 가 안 깔려져있으면 설치를 해야된다. ( gcc -v 로 확인 )

편의상 Code Runner 단축키를 cmd + R 로 설정했다.

그리고 출력 창이 아닌 터미널에서 실행되도록 설정.

요렇게 해주고, Run Code 시 무슨 일이 일어나는지 함 봅시다.

gcc 로 컴파일을 하는데 -o 옵션으로 소스파일과 같은 이름의 실행파일을 생성한 다음, 해당 실행파일을 실행시킨다. ( 디렉토리에 src.c 와 실행파일인 src 파일이 생성되었음. )

일단 여기까지 하면, 컴파일과 실행 세팅은 끝났다.

디버깅 세팅

lldb 설치

which lldb로 설치 확인. 설치 안 돼있으면 lldb명령어로 설치

lldb 와 관련된 익스텐션도 깔아준다.

tasks.json 생성

tasks.json 은 빌드 설정 파일이다.

소스파일에서 cmd + shift + B -> C/C++ : gcc 활성 파일 빌드 의 톱니바퀴 클릭

이렇게 해주면, .vscode 폴더 하위에 tasks.json 파일이 생성될 것이다.

launch.json 생성

launch.json 은 디버깅 설정 파일이다.

소스파일에서 F5 를 누른 다음, LLDB 를 선택해준다.

그러면 launch.json 파일이 생성되는데, 이를 아래 코드를 복사해서 덮어씌워준다.

program 경로를 ${workspaceFolder} 에서${fileDirname} 로 바꿔줬는데, 워크스페이스 루트 경로 말고도 하위 폴더에서도 디버깅을 할 수 있게 하기 위함이다.

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "lldb",
      "request": "launch",
      "name": "Debug",
      "program": "${fileDirname}/${fileBasenameNoExtension}",
      "args": [],
      "cwd": "${fileDirname}"
    }
  ]
}

디버깅 해보기

이제 세팅은 끝났고 디버깅을 해보자.

우선 소스파일에서 빌드를 해야한다.

cmd + shift + B -> C/C++: gcc 활성 파일 빌드 클릭

그 다음, 원하는 위치에 중단점을 설정하고 F5 -> LLDB 를 눌러서 디버깅모드에 진입한다.

꿀팁) 디버깅 시, 인라인 value 보기

vscode 설정에서 Debug: Inline Values 옵션을 true 로 설정하면, 디버깅 시 변수값이 인라인으로 보인다.

4개의 댓글

comment-user-thumbnail
2022년 1월 12일

감사합니다

답글 달기
comment-user-thumbnail
2022년 3월 1일

활성 파일 빌드를 선택할때 gcc를 사용하든 clang을 사용하든 상관이 없는 건가용..? 아니면 선택에 따라 task.json이나 launch.json 에서 해줘야할 설정이 달라질까요?

1개의 답글
comment-user-thumbnail
2023년 7월 9일

감사합니다 덕분에 편하게 세팅했습니다!

답글 달기