Maison >outils de développement >VSCode >Comment déboguer gdb distant dans vscode ? Explication détaillée de la méthode

Comment déboguer gdb distant dans vscode ? Explication détaillée de la méthode

青灯夜游
青灯夜游avant
2023-04-11 19:14:433272parcourir

Comment déboguer à distance gdb dans vscode ? L'article suivant vous présentera la méthode de débogage gdb à distance de vscode. J'espère qu'il vous sera utile !

Comment déboguer gdb distant dans vscode ? Explication détaillée de la méthode

Récemment, avec l'aide de mes collègues, j'ai essayé d'utiliser vscode pour le débogage de gdb. Après l'avoir utilisé, c'était "vraiment délicieux".

Sans plus tarder, cet article va réaliser : déboguer à distance le code C++ sur le serveur Linux et armer le périphérique embarqué côté Windows, et trier la configuration et l'utilisation du débogage gdb.

1. Connexion à distance

Vous devez d'abord vous connecter au serveur à distance, rechercher "remote-ssh" dans la bibliothèque de plug-ins, double-cliquer pour télécharger et installer (je l'ai installé dans l'image ci-dessous ), après l'installation, cliquez sur la barre latérale Remote Explorer qui apparaît. [Apprentissage recommandé : Tutoriel vscode, Enseignement de la programmation]

Cliquez sur le signe +, entrez la commande de connexion ssh dans la fenêtre de commande contextuelle, suivez les instructions, entrez le mot de passe et confirmez, et la connexion est réussi

2. Configurez l'environnement GDB

Créez un code C++ côté serveur comme exemple. très simple

#include <unistd.h>
#include <pwd.h>
#include <iostream>
 
int main()
{
	struct passwd* pwd;
	uid_t userid;
	userid = getuid();
	pwd = getpwuid(userid);
 
	std::cout << "pw_name:" << pwd->pw_name << std::endl;
	std::cout << "pw_passwd:" << pwd->pw_passwd << std::endl;
	std::cout << "pw_uid:" << pwd->pw_uid << std::endl;
	std::cout << "pw_gid:" << pwd->pw_gid << std::endl;
	std::cout << "pw_gecos:" << pwd->pw_gecos << std::endl;
	std::cout << "pw_dir:" << pwd->pw_dir << std::endl;
	std::cout << "pw_shell:" << pwd->pw_shell << std::endl;
 
    return 0;
}
La méthode de compilation est la suivante. Assurez-vous d'ajouter la commande -g, sinon le débogage de gdb sera impossible

g++ -g test.cpp -o test

Cliquez ensuite sur Fichier-Ouvrir le dossier et recherchez le chemin du code créé. Après confirmation, vous pouvez voir. le fichier de code dans le gestionnaire de ressources à gauche.

Vous devez installer l'extension C++ pour la première exécution. Dans la page d'extension, installez C/C++

Recherchez également GDB Debug et installez-le

Après l'installation, cliquez sur "Exécuter et déboguer". ", bouton " Créer un fichier launch.json",

Sélectionnez l'élément C++ (GDB/LLDB) pour générer automatiquement le fichier launch.json. Le contenu est le suivant

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": []
}

Suivez le contenu ci-dessous et modifiez-le en conséquence

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动", //配置名称,显示在配置下拉菜单中
            "type": "cppdbg", //配置类型
            "request": "launch", //请求配置类型,可以是启动或者是附加
            "program": "${workspaceFolder}/test", //程序可执行文件的完整路径,${workspaceFolder}表示远程连接的初始路径
            "args": [], //传递给程序的命令行参数
            "stopAtEntry": false,//可选参数,如果为true,调试程序应该在入口(main)处停止
            "cwd": "${workspaceFolder}", //目标的工作目录
            "environment": [], //表示要预设的环境变量
            "externalConsole": false,//如果为true,则为调试对象启动控制台
            "MIMode": "gdb",//要连接到的控制台启动程序
            "setupCommands": [ //为了安装基础调试程序而执行的一个或多个GDB/LLDB命令
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

L'environnement est maintenant configuré

3. Méthode de débogage GDB

Cliquez directement à gauche du numéro de ligne dans le code source pour ajouter un point d'arrêt. Après avoir défini le point d'arrêt, cliquez sur "Exécuter et déboguer" --. (gdb) pour commencer, comme suit

Vous pouvez accéder à la page de débogage

Vous pouvez voir directement la valeur de la variable dans la zone des variables pour terminer l'objectif de débogage.

Les touches de débogage couramment utilisées sont les suivantes

F5 Démarrer le débogage

F10 Saut en une seule étape

F11 Débogage en une seule étape

shift + F11 Sortie en une seule étape

ctrl + shift + F5 Redémarrer le débogage

shift + F5 Stop Débogage

4. Résumé des problèmes

Si vous vous êtes déjà connecté à un certain appareil et que le remplacement ultérieur de l'appareil a la même adresse IP, ou si l'appareil a été réinstallé, mais que l'adresse IP n'a pas changé, un une erreur sera signalée lors de la reconnexion. La raison est que l'hôte répertorie l'adresse IP du serveur comme known_host

Nous pouvons trouver, modifier, supprimer l'adresse IP et se reconnecter

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer