VS 코드를 사용하여 Windows에서 C++ 코드 디버깅

본고는 VS 코드를 사용하여 Windows(8/9/10)에서 C/C++ 코드를 상향 조정하는 것에 관한 것이다.내가 codeforces에서 온라인 인코딩 경기를 위해 코드를 디버깅할 때, 나는 이것이 간단한 임무라고 생각했지만, 내가 처음으로 이렇게 했을 때, 나는 앞에 많은 차단기가 있다는 것을 발견했다.
첫 번째 문제는 Windows (내 예는 Windows 10) 에서 디버거를 설정하는 것입니다. C++ 같은 언어에 사용할 때 문제가 매우 큽니다.Codeblocks을 사용할 수 있었지만 이런 상황에서 Windows 플랫폼의 디버깅 기능을 지원하지만 테마 응용 프로그램에 익숙하지 않아서 디버깅 인터페이스를 별로 좋아하지 않습니다.많은 다른 개발자들처럼 저도 어둠의 주제를 가진 팬입니다. VS코드 같은 것을 사용하면 저에게 어둠의 주제를 탐색할 수 있는 더 많은 선택을 줄 것입니다.따라서 C++ 디버거를 Windows 시스템에서 실행하기로 했습니다.
구글에서 많은 내용을 검색하고 많은 글을 읽은 후에 나는 마침내 나의 Windows 시스템에서 VS 코드를 사용하여 나의 C++ 코드를 디버깅할 수 있었지만 나는 완전한 해결 방안을 세우는 데 많은 시간을 들였다.그래서 나는 전체 과정을 위해 컴파일된 단계별 안내서를 작성하여 한 곳에서 모든 내용을 찾을 수 있도록 하기로 결정했다.다음 단계는 다음과 같습니다.
  • Visual Studio Code을 설치합니다.
  • 은 공식 문서 here의 지침을 사용하여 Windows Subsystem for Linux(WSL)를 설치합니다.
  • 은 선택한 Linux 릴리스를 설치합니다.Microsoft Store을 열고 당신이 가장 좋아하는 Linux 버전을 선택하십시오.
  • 설치가 완료되면 윈도우즈 검색(예를 들어 Ubuntu)에 설치된 Linux 버전을 검색합니다.를 열면 WSL 명령 프롬프트가 시작됩니다.

  • WSL 명령 프롬프트에서 먼저 apt get update를 실행하여 Ubuntu 패키지 목록을 업데이트하여 패키지가 만료되어 문제가 발생하지 않도록 합니다.
    sudo apt-get update
    

  • 다음을 입력하여 GNU 컴파일러 도구와 GDB 디버거를 설치합니다.
    sudo apt-get install build-essential gdb
    

  • 컴파일러 도구를 설치한 후 다음 명령을 사용하여 GNU C++ 컴파일러와 디버거가 설치되어 있는지 확인합니다.
    g++ --version
    gdb --version
    
    두 명령 모두 WSL의 현재 버전을 반환하지 않고 오류가 발생한 경우 GNU 컴파일러 도구를 다시 업데이트하거나 설치하십시오.

  • 이제 Linux 환경이 완전히 설정되어 있어서 이것들을 실행할 수 있습니다.비주얼 스튜디오 프로젝트 (예:hello World) 를 위한 폴더를 만들고 다음 명령을 사용하여 프로젝트 폴더의 비주얼 스튜디오 코드에서 엽니다.
    mkdir helloworld
    cd mkdir
    code .
    
  • 은 WSL 명령 프롬프트에서 VS 코드를 열면 Linux 측에 소형 서버(VS 코드 서버)를 설치하고 Windows 시스템 VS 코드와 대화합니다.

  • VS 코드를 WSL에서 연 후 보기 > 확장 (또는 Ctrl + Shift + X) 으로 이동하여 두 가지 확장을 설치합니다.

  • Remote - WSL extension: 원격 WSL 확장을 사용하면 VS 코드부터 Windows Linux 서브시스템(WSL)을 전체 개발 환경으로 사용할 수 있습니다.

  • C/C++: C/C++ 확장은 C/C++에 대한 언어 지원을 Visual Studio 코드에 추가하고 IntelliSense와 디버깅 등의 기능을 포함합니다.

  • 이 두 가지 확장자를 설치하면 Visual Studio 하단의 상태 표시줄에서 VS 코드가 실행되는 컨텍스트가 [WSL: Ubuntu]로 변경됩니다.

  • 지금 당신은 이미 코드를 작성할 준비가 되어 있습니다.VS 코드에서 소스 코드 파일(예: helloWorld.cpp)을 추가하고 이 파일에서 코드를 작성합니다.

    // helloWorld.CPP
    #include<bits/stdc++.h>
    using namespace std;
    
    int lengthOfLIS(vector<int>& a, int n) {
        if(n==0)
            return 0;
    
        vector<int> dp(n, 0);
        dp[0] = a[0];
        int len = 1;
    
        for(int i=1; i<n; i++){
            auto it = lower_bound(dp.begin(), dp.begin()+len, a[i]);
            if(it == dp.begin()+len)
                dp[len++] = a[i];
            else
                *it =  a[i];
        }
        return len;
    }
    
    int main(){
        int n;
        cin>>n;
    
        vector<int> v;
        int x;
    
        for(int i=0; i<n; i++){
            cin>>x;
            v.push_back(x);
        }
    
        cout<<lengthOfLIS(v, n);
    }
    
  • 구축 작업: 코드를 작성한 후 Terminal > Configure Default Build Task으로 이동합니다.아래 목록에서 g++ build active file을 선택하면 현재 편집기에 표시된 파일을 구축합니다. (이 예는 HelloWorld.cpp입니다.)

  • 이것은 작업을 만들 것입니다.의 json 파일입니다.vscode 폴더를 편집기에서 엽니다.새 작업json 파일은 다음과 유사해야 합니다.
        {
        "version": "2.0.0",
        "tasks": [
            {
                "type": "shell",
                "label": "g++ build active file",
                "command": "/usr/bin/g++",
                "args": [
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}/${fileBasenameNoExtension}"
                ],
                "options": {
                    "cwd": "/usr/bin"
                },
                "problemMatcher": [
                    "$gcc"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                }
            }
        ]
    }
    

  • 다음은 Run > Add Configuration을 선택한 다음 C++(GDB/LLDB)을 선택하십시오.
    그리고 미리 정의된 디버그 설정의 드롭다운 목록을 볼 수 있습니다.g++ build and debug active file을 선택합니다.VS 코드 생성 시작.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": "gdb",
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ],
                "preLaunchTask": "g++ build active file",
                "miDebuggerPath": "/usr/bin/gdb",
            }
        ]
    }
    
  • 디버그 세션을 시작할 수 있습니다.helloworld로 돌아갑니다.활성 파일로 만듭니다.F5 키를 누르거나 주 메뉴에서 Run > Start Debugging을 선택합니다.브레이크 지점을 설정하는 것을 잊지 마십시오. (줄 번호 왼쪽만 누르면) 디버거가 멈추기를 원합니다. 아래 그림과 같습니다.
  • 은 이 방식을 통해 인터럽트를 설정하고 디버그 옵션을 사용하여 코드를 한 줄(https://code.visualstudio.com/docs/cpp/config-mingw#_step-through-the-code) 검사하여 오류가 발생할 수 있는 부분을 찾을 수 있습니다.디버거를 어떻게 사용하는지에 대한 도움말이 있습니다.
  • 그렇습니다.Windows 운영 체제에서 C++ 코드를 디버깅하여 생활이 더욱 수월해지기를 바랍니다.

    좋은 웹페이지 즐겨찾기