Jai besoin de quelques éclaircissements sur le fonctionnement de GDB dans lenvironnement IDE sur cloud9
Y a-t-il deux types de débogueurs différents que lEDI environnement?
-
Débogueur, via lentrée de commande
debug
qui regarde pas à pas la compilation / vérifie les entrées? (pour le fichier source) -
GDB, qui vérifie le programme exécutable?
De plus, comment passer des arguments dans GDB? Je narrive pas à comprendre cela.
Je regarde pset4 et je veux lancer GDB sur lexécutable « copy » et passer un nom de fichier dentrée et de sortie
comment ferais-je cela dans le terminal
EDIT
aussi mon le débogueur est toujours aussi cassé
Réponse
Pour exécuter GDB avec des arguments dans le terminal, utilisez le paramètre –args.
gdb --args name arg1 arg2 arg3
debug50 (le débogueur graphique) est juste GDB avec une interface graphique. GDB a été conçu à lorigine pour être exécuté via le terminal, et lest toujours. Il est beaucoup plus flexible que nimporte quel débogueur graphique.
- Voici « un guide de référence complet pour GDB: https://sourceware.org/gdb/current/onlinedocs/gdb/
- Et voici « un aide-mémoire que jai trouvé: https://cs.brown.edu/courses/cs033/docs/guides/gdb.pdf
Cependant, voici quelques notions de base:
- Débogage étape par étape:
next (or n)
-
La définition dun point de rupture se fait avec
break (or b) [function or line number]
, par exemple:break main
oubreak 20
où « 20 » est la ligne à couper. -
Exécutez le programme avec
run (or r)
. -
Utilisez
continue or c
pour passer au point darrêt suivant. -
Pour imprimer une variable dans GDB (sans utiliser
printf()
) tapezprint varname
.
Alternativement, maintenant que vous connaissez quelques commandes, vous pouvez exécuter votre programme avec quelques arguments avec [r]un arg1 arg2 arg3
.
Quant à votre problèmes avec debug50, je suis désolé de dire que le prédécesseur de debug50 a été cassé et il semble que debug50 est maintenant également cassé. Je nai jamais réussi à le réparer au moins.
Commentaires
- merci pour la réponse très approfondie !. Autre question, GDB est-il préinstallé dans certains environnements Linux Bash et peut-être dans linvite de commande Windows?
- GDB est préinstallé dans toutes les distributions Linux pour autant que je sache, et certainement dans les plus populaires (arch, debian, ubuntu , etc..). Pour lobtenir sur Windows, vous devrez peut-être utiliser Cygwin ou MinGW (collections doutils et de choses Linux / GNU / POSIX), je ne ' pas savoir si " téléchargement officiel " sur la page de téléchargement GDB gnu.org/software/gdb prend en charge Windows, je nai ' essayé.