Heim  >  Artikel  >  Entwicklungswerkzeuge  >  Detaillierte Konfigurationserklärung: Remote-Debugging von C++ in vscode

Detaillierte Konfigurationserklärung: Remote-Debugging von C++ in vscode

青灯夜游
青灯夜游nach vorne
2022-10-14 19:47:133336Durchsuche

Detaillierte Konfigurationserklärung: Remote-Debugging von C++ in vscode

Vor kurzem lerne ich die Linux-Webserver-Entwicklung. Ich muss meinen eigenen C/C++-Code unter Linux debuggen. Allerdings ist Linux nicht so praktisch wie Visio Studio oder andere integrierte Entwicklungsumgebungen unter Windows relativ problematisch. Sie können also die Verwendung von VScode für die Remote-Entwicklung in Betracht ziehen. Viele Tutorials im Internet sind jedoch nicht sehr klar. Nachdem ich viele Tutorials ausprobiert habe, bin ich auf viele Fallstricke gestoßen. [Empfohlenes Lernen: „vscode-Tutorial“]

1. Systemkonfiguration: Ubuntu18.04 (virtuelle Maschine)Entwicklungshost: Windows10

2. Ubuntu-Remote-Installationssoftware und -Einstellungen

(1) Erforderliche Software installieren: ssh (Systemkommunikation), gdb, gsdbserver (Code-Debugging):

sudo apt-get install openssh-server
sudo apt-get install gdb
sudo apt-get install gdbserver
(2) Testordner und -dateien erstellen

Hinweis:

Obwohl Möglicherweise möchten Sie es in einem Schritt richtig machen und Ihr endgültiges Programm direkt testen. Dies wird nicht empfohlen. Es wird empfohlen, zuerst ein neues Hallo- und Weltprogramm zu erstellen und dann Ihren eigenen Code zu debuggen.

Der Speicherort und der Inhalt des Ordners spielen keine Rolle, aber es ist am besten, es einfach zu halten
  • cd ~/桌面
    mkdir testvs
    cd testvs
    touch main.cpp
    gedit main.cpp
  • Der main.cpp-Code lautet:
  • #include <stdio.h>
     
    int main()
    {
        int a = 1;
        printf("hello world\n");
        getchar();
        return 0;
    }</stdio.h>

(3) Kompilieren Sie die ausführbare Datei und rufen Sie sie ab

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

Fügen Sie die Option -g hinzu, sonst können Sie gdb nicht zum Debuggen verwendeng++ main.cpp -o main -g
注意:

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

(4)启动gdbserver

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

hostname -I
Detaillierte Konfigurationserklärung: Remote-Debugging von C++ in vscode
可以得到本地ip地址为192.168.199.131

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

gdbserver 192.168.199.131:2000 ~/桌面/testvs/main
Nach dem Ausführen befinden sich in den Testvs zwei Dateien main.cpp und main OrdnerDetaillierte Konfigurationserklärung: Remote-Debugging von C++ in vscode

(4 )Starten Sie gdbserver

(4.1) Sehen Sie sich zunächst die IP-Adresse Ihres Ubuntu-Systems an:

    hostname -I
  • Detaillierte Konfigurationserklärung: Remote-Debugging von C++ in vscode
  • Sie können die lokale IP-Adresse als 192.168.199.131 erhalten
  • (4.2 )Starten Sie gdbserver (achten Sie auf die Änderung der IP-Adresse und des Testdateiverzeichnisses)
  • gdbserver 192.168.199.131:2000 ~/Desktop/testvs/main

3. VScode-Einstellungen hosten

(2) SSH-Remoteverbindung


"Verwaltung"->"Systemsteuerung" in der unteren linken Ecke, dann finden Sie die Option "Remote-SSH: Mit Host verbinden..." -> Neuen SSH-Host hinzufügen... Detaillierte Konfigurationserklärung: Remote-Debugging von C++ in vscodeGeben Sie die IP-Adresse des Ubuntu-Systems ein, und die neue Schnittstelle wird angezeigt.

Detaillierte Konfigurationserklärung: Remote-Debugging von C++ in vscodeGeben Sie das Ubuntu-Systemkennwort in das rote Feld ein. Wenn die grüne IP-Adresse in der unteren linken Ecke angezeigt wird Die Verbindung ist erfolgreich, wie unten gezeigt.

(3) Öffnen Sie die Testdatei

Detaillierte Konfigurationserklärung: Remote-Debugging von C++ in vscodeÖffnen Sie den Ordner -> Wählen Sie das Testordnerverzeichnis aus, klicken Sie auf die Schaltfläche „OK“

Wählen Sie die C/C++-Erweiterung „In SSH: XXX installieren". Gleiches gilt für das C/C++ Extension Pack Starten Sie dann Vscode und gdbserver in Ubuntu neu (es muss neu gestartet werden, sonst wird in den nächsten Schritten ein Fehler gemeldet) und führen Sie den oben genannten Remote-Verbindungsprozess erneut aus. (4) Richten Sie die Konfigurationsdatei ein die Dropdown-Leiste. Generieren Sie dann die Datei „tasks.json“ und ersetzen Sie den Inhalt durch:

{
    // 有关 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", //删除过程不切换终端(专注程序输出)
     }
     }
     ]
    }
(4.2) Launch.json konfigurieren

Wählen Sie in der Menüleiste Debug>Konfiguration hinzufügen, wählen Sie C++ (GDB/LLDB) , und wählen Sie „g++ build“ in der Dropdown-Leiste und debuggen Sie die aktive Datei „launch.json“ und ändern Sie den Inhalt in:

{
    // 使用 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"
    }
    ]
   }

4. Ausführen und Debuggen

Einfach debuggen und unter main.cpp ausführen

Weitere Informationen zu VSCode finden Sie unter: vscode Basic Tutorial!

Das obige ist der detaillierte Inhalt vonDetaillierte Konfigurationserklärung: Remote-Debugging von C++ in vscode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen