Maison > outils de développement > VSCode > le corps du texte

Explication détaillée de la configuration : débogage à distance C++ dans vscode

青灯夜游
Libérer: 2022-11-04 09:57:22
avant
3399 Les gens l'ont consulté

Explication détaillée de la configuration : débogage à distance C++ dans vscode

Récemment, j'apprends le développement de serveurs Web Linux. J'ai besoin de déboguer mon propre code C/C++ sous Linux. Cependant, Linux n'est pas aussi pratique que directement Visio Studio ou d'autres environnements de développement intégrés sous Windows. relativement problématique. Vous pouvez donc envisager d'utiliser VScode pour le développement à distance. Cependant, de nombreux tutoriels sur Internet ne sont pas très clairs. Après avoir essayé de nombreux tutoriels, j'ai rencontré de nombreux pièges. Le résumé final est le suivant. [Apprentissage recommandé : "Tutoriel vscode"]

1. Configuration du système

Système distant : Ubuntu18.04 (machine virtuelle)
Hôte de développement : Windows10

2.

(1) Installez les logiciels nécessaires : ssh (communication système), gdb, gsdbserver (débogage du code) :

sudo apt-get install openssh-server
sudo apt-get install gdb
sudo apt-get install gdbserver
Copier après la connexion

(2) Créez des dossiers et des fichiers de test

Remarque :

Bien que vous souhaiterez peut-être réussir en une seule étape et tester votre programme final directement, il n'est pas recommandé de le faire. Il est recommandé de créer un nouveau programme hello and world pour tester d'abord, puis de déboguer votre propre code après succès.

    L'emplacement et le contenu du dossier n'ont pas d'importance, mais il est préférable de rester simple
cd ~/桌面
mkdir testvs
cd testvs
touch main.cpp
gedit main.cpp
Copier après la connexion
  • Le code main.cpp est :
  • #include <stdio.h>
     
    int main()
    {
        int a = 1;
        printf("hello world\n");
        getchar();
        return 0;
    }</stdio.h>
    Copier après la connexion

    (3) Compilez et récupérez le fichier exécutable

    g++ main.cpp -o main -gRemarque :

    g++ main.cpp -o main -g
    注意:

    • 加-g选项,不然没法用gdb调试
    • 运行后testvs文件夹下有main.cpp和main两个文件

    (4)启动gdbserver

    (4.1)首先看一下自己的ubuntu系统ip地址:

    hostname -I
    Explication détaillée de la configuration : débogage à distance C++ dans vscode
    可以得到本地ip地址为192.168.199.131

    (4.2)启动gdbserver(注意更改ip地址和测试文件目录)

    gdbserver 192.168.199.131:2000 ~/桌面/testvs/mainAjoutez l'option -g, sinon vous ne pouvez pas utiliser gdb pour déboguer
    Explication détaillée de la configuration : débogage à distance C++ dans vscodeAprès l'exécution, il y a deux fichiers main.cpp et main dans le testvs dossier

    (4) Démarrez gdbserver

    (4.1) Regardez d'abord l'adresse IP de votre système Ubuntu :

    • hostname -I
    • Explication détaillée de la configuration : débogage à distance C++ dans vscode
    • Vous pouvez obtenir l'adresse IP locale sous la forme 192.168.199.131
    • (4.2) Démarrez gdbserver (faites attention à changer l'adresse IP et le répertoire des fichiers de test)
    gdbserver 192.168.199.131:2000 ~/Desktop/testvs/main

    3. Paramètres de l'hôte VScode


    (1) Installez d'abord les plug-ins suivants dans VScode : Explication détaillée de la configuration : débogage à distance C++ dans vscode

    Explication détaillée de la configuration : débogage à distance C++ dans vscodeC/C++

    C/C++ Extension PackRemote - SSHDéveloppement à distance

    Explication détaillée de la configuration : débogage à distance C++ dans vscode(2) connexion à distance ssh

    "Gestion"->"Panneau de configuration" dans le coin inférieur gauche, puis recherchez l'option "Remote-SSH : Se connecter à l'hôte..." -> Ajouter un nouvel hôte SSH...Entrez l'adresse IP du système Ubuntu et la nouvelle apparaîtra Interface

    Entrez le mot de passe du système Ubuntu dans la case rouge Si l'adresse IP verte est affichée dans le coin inférieur gauche, le la connexion est réussie, comme indiqué ci-dessous.

    (3) Ouvrez le fichier de test

    Ouvrez le dossier -> Sélectionnez le répertoire du dossier de test, cliquez sur le bouton "OK"

    Sélectionnez l'extension C/C++, "Dans SSH : XXXInstallation". Il en va de même pour le pack d'extension C/C++

    Redémarrez ensuite Vscode et gdbserver dans Ubuntu (il doit être redémarré, sinon une erreur sera signalée dans les étapes suivantes) et réexécutez le processus de connexion à distance ci-dessus.

    Explication détaillée de la configuration : débogage à distance C++ dans vscode(4) Configurez le fichier de configuration


    (4.1) Configurez tâches.json

    🎜🎜Sélectionnez Terminal> Configurer la tâche de construction par défaut dans la barre de menu et sélectionnez C/C++ : g++ build active file in la barre déroulante. Générez ensuite le fichier tâches.json et remplacez le contenu par : 🎜
    {
        // 有关 tasks.json 格式的文档,请参见
         // https://go.microsoft.com/fwlink/?LinkId=733558
         "version": "2.0.0",
         "tasks": [
         {
         "type": "shell",
         "label": "g++ build active file",
         "command": "/usr/bin/g++",
         "args": [
         "-std=c++11",
         "-g",
         "${file}",
         "-o",
         "${fileDirname}/${fileBasenameNoExtension}"
         ],
         "options": {
         "cwd": "/usr/bin"
         },
         "problemMatcher": [
         "$gcc"
         ],
         "group": {
         "kind": "build",
         "isDefault": true
         }
         },
         { //删除二进制文件
         "type": "shell",
         "label": "delete output file",
         "command": "rm",
         "args": [
         "${fileDirname}/${fileBasenameNoExtension}"
         ],
         "presentation": {
         "reveal": "silent", //删除过程不切换终端(专注程序输出)
         }
         }
         ]
        }
    Copier après la connexion
    🎜🎜(4.2) Configurer launch.json🎜🎜🎜Sélectionnez Debug>Ajouter une configuration dans la barre de menu, sélectionnez C++ (GDB/LLDB) , puis sélectionnez g++ build dans la barre déroulante et déboguez le fichier actif. Générez launch.json et modifiez le contenu en : 🎜
    {
        // 使用 IntelliSense 了解相关属性。 
        // 悬停以查看现有属性的描述。
        // 欲了解更多信息,请访问: 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": "为 gdb 启用整齐打印",
         "text": "-enable-pretty-printing",
         "ignoreFailures": true
        }
        ],
        "preLaunchTask": "g++ build active file",
        "postDebugTask": "delete output file",
        "miDebuggerPath": "/usr/bin/gdb"
        }
        ]
       }
    Copier après la connexion
    🎜🎜4. Exécutez le débogage🎜🎜🎜 Déboguez et exécutez simplement sous main.cpp🎜🎜🎜🎜🎜. Pour plus de connaissances sur VSCode, veuillez visiter : 🎜Tutoriel de base vscode🎜 ! 🎜🎜

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    source:cnblogs.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal