Debogage sous Ubuntu avec Nemiver ( alternative a GDB..)
Bonjour,
J'essaye d'utiliser nemiver pour deboger qqs lignes de C...
Pas moyen de charger l'executable a deboger car message de nemiver " Le processus du moteur de debogabe sous-jacent s'est arrète"
Il me parlerait chinois, ca serait pareil !!!
Le moteur de debogage est GDB car installé automatiquement lors de l'install d'Ubuntu
Ca dit qqch a qqun ?
merci
J'essaye d'utiliser nemiver pour deboger qqs lignes de C...
Pas moyen de charger l'executable a deboger car message de nemiver " Le processus du moteur de debogabe sous-jacent s'est arrète"
Il me parlerait chinois, ca serait pareil !!!
Le moteur de debogage est GDB car installé automatiquement lors de l'install d'Ubuntu
Ca dit qqch a qqun ?
merci
1 réponse
-
Bonjour,
Le titre de ton message et son contenu sont contradictoire : est ce que c'est finalement gdb qui est utilisé ou pas ? Si nemiver est une surcouche àgdb
, alors la réponse est oui (et c'est bien, car c'est l'outil standard).
Tu peux alors déboguer ton programme avecgdb
:
gcc -g toto.c -o mon_executable
gdb ./mon_executable
L'invite degdb
s'affiche et te permet de taper des commandes gdb pour piloter le débogueur. Pour la plupart d'entre elles il suffit de taper la première lettre plutôt que la commande entière (par exemple "p" au lieu de "print").
D'ici, tu peux installer des breakpoints (et ensuite avancer pas à pas une fois que l'un d'eux est atteint avecn
ouc
) :
b ma_fonction
... lancer le programme (ici on suppose qu'il prend en argument param1 et param2) :
r param1 param2
, et en cas de plantage afficher la pile d'exécution.
bt
l
Tu peux aussi afficher le contenu d'une variable (p toto
), bien entendu quitter (q
), et bien d'autres choses...
Plus de détails ici :
http://perso.ens-lyon.fr/daniel.hirschkoff/C_Caml/docs/doc_gdb.pdf
Personnellement j'utilise directementgdb
, et pour les gros projetskdevelop
qui offre une interface graphique pourgdb
. Quand tu deviens familier du C/C++, les erreurs nécessitant l'utilisation de gdb sont plutôt des erreurs mémoires (segmentation fault) qu'on peut généralement comprendre juste en lançant le programme, et en regardant avecbt
où il a planté.
Bonne chance