[VSCode] macOS에서 Visual Studio Code로 C/C++ 코딩하기(2) - 디버깅을 위한 tasks.json, launch.json 설정

지난글에서는 VSCode에서 C++ 코드를 '실행(Run)'만 할 수 있는 설정을 했다. 

 

[VSCode] macOS에서 Visual Studio Code로 C/C++ 코딩하기(1) - Extension 설치

MacOS에서 Windows의 Visual Studio같은 IDE는 대표적으로 XCode가 있다. But.... 써본 사람들은 알겠지만, 인터페이스가 예쁘긴 한데 뭔가 불편하고 특히 PS(Problem Solving) 공부할 때 input/output 에서 약간..

junekkk.tistory.com

하지만 PS 할 때 디버깅 없이 로그만 주구창창찍어보며 하기에는 너무 귀찮다.

지난번에 설치했던 Code Runner는 코드 실행만 할 수 있고 디버깅 기능은 없기때문에 이번에는 디버깅 할 수 있도록 설정해봅시다.


  • 우선 디버깅을 할 수 있도록 원하는 줄에서 fn+F9 를 눌러 브레이크포인트를 걸어보자. 다만, 디버깅을 하기전에 .cpp파일 말고, 실행파일(Code Runner가 실행할때 생성하는 파일)이 필요하니 재생버튼을 한번 눌러서 코드를 최소 한번은 실행시켜줘야한다.


  • 그리고 디버깅 단축키인 fn+F5 를 눌러보자. 그럼 아래와 같은 창이 뜰것이다. C++ (GDB/LLDB) 선택!


  • 그럼 이어서 또 다른 창이 뜬다. g++ build and debug active file 선택!


  • launch.json 파일이 곧바로 생성된다.


  • 저장(Command + S)을 하고, 다시 .cpp파일로 돌아와서 fn+F5 를 누르면 아래와 같이 g++ build active file 명령어를 찾을 수 없다고 경고창이 뜬다. Configure Task 를 클릭!


  • 방금 경고창에 떴던 명렁어인 C/C++:g++ build active file 을 선택


  • 그럼 아래와 같이 tasks.json 파일이 생성된다. 거의 다 왔다.


  • 여기서 조금만 더 수정하면 된다. 위에까지만 설정해도 디버깅은 되지만, 지난 포스팅 처럼 모던C++(11이상)을 지원하지 않는 세팅이다. "args": 부분을 조금 수정해야한다. "-g" 밑에 "-std=c++14" 를 추가해주자.
    tasks.json
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "-std=c++14",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build"
        }
    ]
}

 

 


  •  launch.json 은 따로 수정하지 않아도 된다. 혹시몰라서 코드는 첨부
    launch.json
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++ build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb",
            "preLaunchTask": "g++ build active file"
        }
    ]
}

  • 다시 .cpp 파일로 돌아와서 fn+F5 를 눌러 디버깅을 하면 잘 된다!

 

+) 내용 추가

디버깅 실행시키고 새로운 input을 받으려고 암만 VSCode아래 터미널창에 입력해봐도 입력이 안된다.

launch.json "externalConsole" 을 true 로 설정해주면, 디버깅 시 새로운 터미널창이 열리면서 거기서는 input값을 입력할 수 있다.

끝.