Werfen wir einen Blick auf das Problem des VScode-Remote-Debuggings im Linux-Programm. Der spezifische Inhalt ist wie folgt, schauen wir uns das an! Ich habe vor Kurzem ein Programm unter Linux debuggt, bin bei der Verwendung von gdb jedoch noch ein Anfänger, hauptsächlich, weil es keine intuitive grafische Benutzeroberfläche hat. Ich habe online gesucht und zwei Optionen gefunden. Eine davon ist die Remote-Debugging-Funktion von VisualStudio2019. Ich habe sie noch nicht ausprobiert, da ich VScode erst kürzlich verwendet habe. Ich kann es versuchen, wenn ich Zeit habe. Eine andere Lösung besteht darin, Remote-Debugging über das Remote Development-Plug-In von VScode (offiziell von Microsoft bereitgestellt) durchzuführen. Dieser Artikel stellt diese Lösung vor. Erforderliche Software und Plugins Zuerst müssen Sie gdb und gdbserver installieren. Sie können sie je nach Typ Ihres Remote-Systems installieren. Ich verwende Ubuntu, das bereits standardmäßig installiert ist. Der Befehl lautet wie folgt: sudo apt installiere gdb sudo apt installiere gdbserver Zweitens müssen Sie das Remote Development-Plug-in für VScode installieren, das offizielle C/C++-Plug-in. Nachdem dieses C/C++-Plug-In per Remote-Zugriff mit Linux verbunden wurde, muss es auch auf dem Remote-Linux installiert werden. Sie können im Screenshot unten sehen, dass neben der Schaltfläche zum Deinstallieren des Plugins eine „Erweiterung unter SSH aktiviert: xxxx“ steht, was bedeutet, dass es bereits installiert wurde. Die Installationsmethode wird später vorgestellt, nachdem die Verbindung erfolgreich hergestellt wurde. Remote-Verbindung Nach der Installation des Remote Development-Plugins können Sie eine Remoteverbindung zu Linux herstellen. Es gibt zwei Möglichkeiten, eine Verbindung über SSH herzustellen. Eine davon ist mit einem Konto und einem Passwort. Ein anderer Typ ist die Public-Private-Key-Verbindung. Es wird empfohlen, hier öffentliche und private Schlüssel zum Herstellen einer Verbindung zu verwenden, da der Remote-Debugging-Prozess später mit mehreren Stellen verbunden wird und es mühsam ist, das Kennwort mehrmals einzugeben. Wenn Sie öffentliche und private Schlüssel verwenden, müssen Sie es nur einmal konfigurieren, was sehr praktisch ist. Wenn Sie sich dennoch für die Verbindung mit einem Konto und einem Passwort entscheiden, können Sie diesen Schritt überspringen. Die SSH-Remotekonfigurationsmethode ist relativ einfach, weist unter Windows jedoch ein großes Problem auf. Generieren Sie zunächst ein öffentliches und privates Schlüsselpaar auf dem Remote-Linux: # Führen Sie den folgenden Befehl aus und generieren Sie gemäß den Anweisungen ein öffentliches und privates Schlüsselpaar. ssh-keygen -t rsa # Der öffentliche Schlüssel wird direkt im generierten Pfad gespeichert und dann an authorized_keys übertragen # Im .ssh-Verzeichnis des Benutzers speichern. Im Allgemeinen ist beim Generieren der Standardpfad das .ssh-Verzeichnis des Benutzers. # Gehen Sie davon aus, dass der generierte öffentliche Schlüssel „vscode_rsa.pub“ ist. Achten Sie abschließend auf die Berechtigungseinstellungen. Standardmäßig ist keine Änderung erforderlich. cat /home/Benutzer/.ssh/vscode_rsa.pub >> /home/Benutzer/.ssh/autorisierte_schlüssel chmod 644 /root/.ssh/authorized_keys # Laden Sie den privaten Schlüssel auf die Windows-Maschine herunter. # Nehmen Sie an, der Pfad lautet „D:/.ssh/vscode_rsa“. Bis hierhin gibt es keine Probleme. Jetzt müssen Sie die Verbindung in VScode konfigurieren. Gastgeber xxxx Hostname xxxx Benutzername Identitätsdatei D:/.ssh/vscode_rsa Anschließend können Sie den Remote-Ordner in der ursprünglichen Dateibrowseroberfläche öffnen. Aber wenn die Verbindung konfiguriert ist, meldet das VScode-Terminal einen Fehler:
Die Grundursache ist das Berechtigungsproblem des privaten Schlüssels. Wenn dies unter Linux geschieht, können Sie es mit chmod direkt auf 644 ändern, unter Windows ist dies jedoch etwas umständlicher. Lösung: Klicken Sie mit der rechten Maustaste auf den privaten Schlüssel und wählen Sie „Eigenschaften“, wählen Sie dann die Registerkarte [Sicherheit], klicken Sie unten auf die Schaltfläche [Erweitert], klicken Sie dann unten im neuen Popup-Fenster auf [Vererbung deaktivieren] und klicken Sie anschließend über der Vererbungsschaltfläche auf die Schaltfläche [Hinzufügen], um den aktuellen Fenster-Anmeldebenutzer als Besitzer des privaten Schlüssels zurückzusetzen und alle Berechtigungen zu überprüfen. Am Ende sollte es so aussehen: Öffnen Sie zu diesem Zeitpunkt die VScode-Remoteverbindung erneut und es tritt kein Problem auf. Remote-Debugging VScode-Einstellungen Zuerst müssen Sie das oben erwähnte C/C++-Plug-In auf dem Remote-Linux installieren. Die Installationsmethode ist einfach. Klicken Sie auf das Plug-In. Sie können sehen, dass einige Plug-Ins in den installierten Plug-Ins eine grüne Eingabeaufforderung [In SSH: IP] haben. Suchen Sie das C/C++-Plug-In, klicken Sie auf die grüne Eingabeaufforderung und installieren Sie es auf dem Remote-Linux. Starten Sie VScode nach der Installation neu. Am besten starten Sie auch das Remote-Linux neu, da ich es nicht gestartet habe. Als ich es später bediente, meldete VScode, dass der ausgewählte Debuggertyp nicht gefunden werden konnte, und es wurde nicht automatisch eine launch.json-Datei basierend auf dem von Ihnen ausgewählten Debugger generiert. Am besten ist es jedoch, wenn es ohne Neustart klappt. Wählen Sie dann in der Menüleiste „Ausführen -> Konfiguration hinzufügen“ aus. Daraufhin wird eine Eingabeaufforderung zur Auswahl der Debugumgebung angezeigt. Wählen Sie [C++ GDB/LLDB] aus, um die Datei launch.json automatisch zu generieren. wie folgt: { // Verwenden Sie IntelliSense, um mehr über verwandte Eigenschaften zu erfahren. // Bewegen Sie den Mauszeiger darüber, um die Beschreibungen vorhandener Eigenschaften anzuzeigen. // Weitere Informationen finden Sie unter: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "Konfigurationen": [ { "Name": "(gdb) Start", "Typ": "cppdbg", "Anfrage": "starten", "Programm": "${workspaceFolder}/Programm", "Argumente": [], "stopAtEntry": wahr, "cwd": "${workspaceFolder}", "Umfeld": [], "externeKonsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Pretty Printing für gdb aktivieren", "Text": "-enable-pretty-printing", "ignoreFailures": wahr } ] } ] } Wenn es nicht automatisch generiert wird, bedeutet dies, dass VScode die Umgebung nicht erkennt und das von Ihnen installierte Plug-In nicht wirksam wurde. Daher müssen Sie VScode und das Remote-Linux neu starten. Remote-Linux startet gdbserver Starten Sie gdbserver auf dem Remote-Linux wie folgt: #gdbserver localhost:<Port> <Programm> <Argumente> gdbserver localhost:2333 /Pfad/zu/meinemProgramm arg1 arg2 Achten Sie darauf, die Portnummer nicht zu ändern, da dies die Portnummer ist, die standardmäßig bei der Verbindung von VScode verwendet wird. Drücken Sie dann zum Debuggen einfach F5 in VScode. GDB zeigt den Quellcode automatisch an. Daher ist es am besten, die Debug-Version des zu debuggenden Programms zu verwenden. Referenzartikel: https://warmgrid.github.io/2019/05/21/remote-debug-in-vscode-insiders.html https://superuser.com/questions/1296024/windows-ssh-permissions-for-private-key-are-too-open Dies ist das Ende dieses Artikels zur Lösung des Problems der VScode-Konfiguration des Linux-Programms zum Remote-Debuggen. Weitere relevante Inhalte zum Linux-Programm zum Remote-Debuggen von VScode finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: So erstellen Sie eine Ansicht in MySQL
>>: Vant Uploader implementiert die Komponente zum Hochladen eines oder mehrerer Bilder
Ich habe vor, die internen Dokumente des Unterneh...
Warum brauchen wir ein Berechtigungsmanagement? 1...
Inhaltsverzeichnis 1. Vererbung der Prototypkette...
In diesem Artikelbeispiel wird der spezifische Ja...
Wenn Sie Ihr MySQL-Anmeldekennwort vergessen, ist...
1. PRIMARY KEY hinzufügen (Primärschlüsselindex) ...
Stellen Sie die Breite des Textkörpers auf die Bre...
Hinweis: Es wird empfohlen, dass der Speicher der...
Inhaltsverzeichnis Einführung 1. MySQL Master-Sla...
Das Boxmodell gibt die Breite und Höhe sowie die ...
1. Root-Passwort festlegen und ändern Überprüfen ...
Schalten Sie den Ping-Scan aus, obwohl dies nicht...
Inhaltsverzeichnis 1. Quellcode 1.1 Monorepo 1.2 ...
Bisher haben wir alle Dateien mit der Endung .msi...
Vorwort Beim Einsatz von Docker in einer Produkti...