Maison  >  Article  >  développement back-end  >  Comment utiliser gdb pour déboguer des programmes C++ ?

Comment utiliser gdb pour déboguer des programmes C++ ?

WBOY
WBOYoriginal
2024-06-02 09:29:571115parcourir

gdb est un outil de débogage de programmes C++. Les commandes de base incluent : run : démarre le programme break : définit un point d'arrêt next : exécute la ligne suivante de code step : exécute la fonction actuelle étape par étape print : imprime la valeur de l'expression bt : affiche la trace de la pile Les fonctionnalités avancées incluent des points d'arrêt conditionnels, des points de surveillance et les scripts Python.

Comment utiliser gdb pour déboguer des programmes C++ ?

Comment utiliser gdb pour déboguer des programmes C++

Introduction

GDB (GNU Debugger) est un outil puissant qui peut être utilisé pour déboguer des programmes C++. Il permet aux développeurs de parcourir le code, d'inspecter les valeurs des variables et d'afficher les traces de pile. Cet article explique comment utiliser gdb en C++.

Installez GDB

Dans la plupart des distributions Linux, gdb est préinstallé. Si vous ne l'avez pas installé, vous pouvez l'installer en utilisant la commande suivante :

sudo apt install gdb

Sur macOS, vous pouvez installer gdb en utilisant Homebrew :

brew install gdb

Démarrer GDB

Pour démarrer gdb, utilisez la commande suivante :

gdb

Ensuite, vous Le programme à déboguer doit être spécifié. Vous pouvez charger un programme C++ en exécutant la commande suivante :

(gdb) file my_program.cpp

Commandes GDB de base

Voici quelques commandes gdb de base pour déboguer les programmes C++ :

  • run : Démarrez le programme.
  • break : Définissez un point d'arrêt au numéro de ligne spécifié.
  • suivant : Exécutez la ligne de code suivante.
  • étape : Exécutez la fonction actuelle étape par étape.
  • print : Imprime la valeur de l'expression.
  • bt : Afficher la trace de la pile.

Cas pratique

Supposons que nous ayons un programme C++ nommé mon_programme.cpp qui contient le code suivant : my_program.cpp 的 C++ 程序,其中包含以下代码:

#include <iostream>

using namespace std;

int main() {
  int a = 5;
  int b = 10;
  int c = a + b;

  cout << c << endl;

  return 0;
}

要调试此程序,我们可以执行以下步骤:

  1. 使用 gdb 命令启动 gdb。
  2. 使用 file my_program.cpp 加载程序。
  3. 使用 run 命令运行程序。
  4. 使用 break 10 设置一个断点,在第 10 行处暂停程序(此处为 cout 语句)。
  5. 使用 next 命令逐步执行代码,直到到达断点。
  6. 使用 print 命令打印变量的值,例如 print aprint c
  7. 使用 bt 命令查看堆栈跟踪。
  8. 使用 continuerrreee
  9. Pour déboguer ce programme, nous pouvons effectuer les étapes suivantes :

Utilisez la commande gdb pour démarrer gdb. Utilisez le file my_program.cpp pour charger le programme.

Utilisez la commande run pour exécuter le programme.

    Utilisez break 10 pour définir un point d'arrêt pour mettre le programme en pause à la ligne 10 (ici l'instruction cout).
  • Utilisez la commande next pour parcourir le code jusqu'à ce que vous atteigniez un point d'arrêt.
  • Utilisez la commande print pour imprimer la valeur d'une variable, telle que print a ou print c.
  • Utilisez la commande bt pour afficher la trace de la pile.
  • Utilisez la commande continue pour continuer l'exécution du programme.
  • Fonctionnalités avancées

gdb fournit également de nombreuses fonctionnalités avancées, telles que :

Points d'arrêt conditionnels : 🎜Déclenchez des points d'arrêt uniquement lorsque des conditions spécifiques sont remplies. 🎜🎜🎜Point d'observation : 🎜Un événement est déclenché lorsque la valeur d'une variable change. 🎜🎜🎜Script Python : 🎜Autorise les tâches de débogage automatisées. 🎜🎜🎜🎜Conclusion🎜🎜🎜gdb est un outil puissant pour déboguer les programmes C++. En maîtrisant les commandes de base et les fonctionnalités avancées, les développeurs peuvent trouver et corriger efficacement les erreurs dans leur code. 🎜

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn