J'ai cherché de la documentation à ce sujet et je n'ai rien trouvé. J'ai installé MinGW et cela fonctionne très bien. Je ne sais tout simplement pas comment utiliser le débogueur.
Étant donné un code simple, disons dans un fichier appelé "mycode.cpp":
int main()
{
int temp = 0;
for (int i = 0; i < 5; ++i)
temp += i;
return 0;
}
... comment pourrais-je déboguer cela. Quelles sont les commandes que j'utilise pour déboguer du code avec MinGW et GDB dans Windows? Puis-je parcourir le code via la ligne de commande comme dans Visual Studio? Si oui, quelles commandes dois-je utiliser pour ce faire?
Existe-t-il des tutoriels pour utiliser GDB? Je ne pouvais pas en trouver, mais si quelqu'un pouvait me diriger vers celui-là, ce serait génial aussi. J'en ai assez d'écrire des tonnes de std::cout
instructions pour déboguer du code complexe.
La première étape consiste à compiler votre programme avec -g
pour inclure des informations de débogage dans l'exécutable:
g++ -g -o myprog.exe mycode.cpp
Ensuite, le programme peut être chargé dans gdb
:
gdb myprog.exe
Quelques commandes pour vous aider à démarrer:
break main
provoquera la rupture du débogueur lorsque main
sera appelé. Vous pouvez également interrompre les lignes de code avec break FILENAME:LINENO
. Par exemple, break mycode.cpp:4
interrompt l'exécution chaque fois que le programme atteint la ligne 4 de mycode.cpp
.start
démarre le programme. Dans votre cas, vous devez définir des points d'arrêt avant de démarrer le programme car il se ferme rapidement.À un point d'arrêt:
print VARNAME
. C'est ainsi que vous imprimez les valeurs des variables, qu'elles soient locales, statiques ou globales. Par exemple, dans la boucle for
, vous pouvez taper print temp
pour afficher la valeur de la variable temp
.step
Cela équivaut à "entrer".next
ou adv +1
Passez à la ligne suivante (comme "step over"). Vous pouvez également passer à une ligne spécifique d'un fichier spécifique avec, par exemple, adv mycode.cpp:8
.bt
Imprime une trace. Il s'agit essentiellement d'une trace de pile.continue
Exactement comme une opération "continue" d'un débogueur visuel. Il provoque l'exécution du programme jusqu'à ce que le prochain point d'arrêt ou le programme se termine.La meilleure chose à lire est le manuel d'utilisation de GDB .
Il y a quelques gdb guis pour windows dans cette question version Windows du DDD frontal GDB
Bien que DDD n'ait pas été porté