Heim >Entwicklungswerkzeuge >VSCode >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“]
2. Ubuntu-Remote-Installationssoftware und -Einstellungen
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 haltencd ~/桌面 mkdir testvs cd testvs touch main.cpp gedit main.cpp
#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 -g
Hinweis:
Fügen Sie die Option -g hinzu, sonst können Sie gdb nicht zum Debuggen verwendeng++ main.cpp -o main -g
注意:
(4)启动gdbserver
(4.1)首先看一下自己的ubuntu系统ip地址:
hostname -I
可以得到本地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 Ordner
(4.1) Sehen Sie sich zunächst die IP-Adresse Ihres Ubuntu-Systems an:
hostname -I
Sie können die lokale IP-Adresse als 192.168.199.131 erhalten
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... Geben Sie die IP-Adresse des Ubuntu-Systems ein, und die neue Schnittstelle wird angezeigt.
Geben 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
Ö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
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!