GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser GDB dans Eclipse pour le débogage C/C++ ?

Les instructions suivantes concernent Eclipse 3.5 (Galileo). Pour 3.6 (Helios), ils sont similaires à l'exception du lien à l'étape 2.

  1. Accédez à Aide > Installer un nouveau logiciel.
  2. Ajoutez le référentiel CDT http://download.eclipse.org/tools/cdt/releases/galileo à la liste des référentiels.
  3. Sélectionnez le référentiel CDT. Vous devez maintenant installer le plug-in CDT avec la prise en charge de GDB dans la liste des plug-ins disponibles (sélectionnez les fonctionnalités principales de CDT ainsi que la prise en charge du débogage de la chaîne d'outils CDT GNU).

Vous devriez maintenant pouvoir définir des points d'arrêt et inspecter les valeurs des variables dans Eclipse.

Une alternative consiste à installer DDD (une interface graphique pour GDB).


Téléchargez d'abord Eclipse CDT pour vous assurer que vous pouvez importer un projet dans Eclipse comme indiqué sur :Comment créer un projet à partir d'une source existante dans Eclipse, puis le trouver ?

Vous pouvez essayer de tester les choses avec ce répertoire de test simple :https://github.com/cirosantilli/ide-test-projects/tree/e93924d4e2ce8cd64b00a7ce67d10d62b497fda1/cpp

git clone https://github.com/cirosantilli/ide-test-projects
cd ide-test-projects/cpp
make
./main.out

Maintenant, vous voudrez également indiquer à Eclipse comment trouver les symboles de bibliothèque standard, comme expliqué à :Erreur "Inclusion non résolue" avec Eclipse CDT pour les en-têtes de bibliothèque standard C Leurs valeurs par défaut sont terribles et ne fonctionnent tout simplement pas.

Une fois qu'Eclipse a importé le projet, et par ex. vous semblez pouvoir passer aux définitions, etc., configurons une étape de débogage GDB.

Vous devez d'abord passer sous :

  • Exécuter
  • Exécuter les configurations
  • Application C/C++
  • cpp par défaut ("cpp" est le nom du projet)
  • Application C/C++

et réglez-le sur :

main.out

Eclipse sait maintenant comment exécuter votre programme. Nous pouvons le confirmer en effectuant un test :

  • Exécuter
  • Exécuter (Ctrl + F11)

et le terminal en bas affiche la sortie du programme :

Enfin, nous pouvons mettre un point d'arrêt sur n'importe quel point, par ex. main en double-cliquant sur la barre latérale à gauche du code, ce qui crée un cercle bleu (illustré sur l'image ci-dessus).

Nous pouvons maintenant déboguer via :

  • Exécuter
  • Déboguer (F11)

et comme prévu il nous reste à main :

La ligne bleu clair sur (void)argv; indique qu'il s'agit de la ligne en cours d'exécution sous le débogueur.

À partir de là, il suffit d'apprendre l'interface de débogage, par exemple :

  • raccourcis tels que F6 pour passer en revue, désormais visibles sous "Exécuter" (uniquement visibles une fois que vous avez commencé le débogage)
  • afficher les valeurs des variables sous "Variables" à droite
  • arrêter les exécutions avec Exécuter > Terminer (Ctrl + F2)
  • passer des arguments au programme :arguments de ligne de commande Eclipse

Vous pouvez ensuite revenir à la vue normale du code (sans débogage) avec Ctrl + F8 une fois que vous avez terminé le débogage :comment revenir à la perspective après avoir terminé le processus de débogage dans Eclipse ?

Testé sur Eclipse 2020-03 (4.15.0).


Linux
  1. Comment j'utilise Ansible et anacron pour l'automatisation

  2. Comment utiliser rsync avancé pour les sauvegardes Linux volumineuses

  3. Comment utiliser systemd-nspawn pour la récupération du système Linux

  4. Comment utiliser Lightdm pour les sessions définies par l'utilisateur ?

  5. Application C++ de débogage à distance avec interface graphique Eclipse

Comment vérifier les ports d'écoute sous Linux (ports utilisés)

Comment utiliser Avidemux pour le montage vidéo

Comment exécuter une commande pendant une durée spécifique sous Linux

Comment compiler et exécuter des programmes C, C++ sous Linux

Comment exécuter des programmes C/C++ sous Linux [Terminal &Eclipse]

Comment utiliser IPTables au lieu de firewalld pour Fedora 30-31-32