2008-11-26 9 views
21

J'ai donc écrit un code buggé qui plante parfois ... et crée un fichier stackdump. Utilisation addr2line Je peux comprendre comment le programme est arrivé au point de panne en décodant les adresses par un. Existe-t-il un outil alternatif qui peut faciliter le débogage en utilisant des dumps de pile? Existe-t-il un moyen de charger cette information dans Insight/Gdb?Utilisation d'un stackdump à partir de l'exécutable Cygwin

Répondre

40

Vous pouvez demander à Cygwin de démarrer votre débogueur gdb juste à temps lorsqu'une erreur se produit. Pour ce faire, ajoutez error_start=action à la variable d'environnement Cygwin:
export CYGWIN="$CYGWIN error_start=gdb -nw %1 %2"

vous pouvez avoir Cygwin Else générer une véritable décharge de base.
export CYGWIN="$CYGWIN error_start=dumper -d %1 %2"

+1

+1 pour très utile indice –

+3

et exécutez 'chemin gdb/vers/le/chemin binaire/vers/le/core' pour déboguer. Merci à http://stackoverflow.com/a/5115653/204658. – thoni56

+0

Avec cette option 'error_start = gdb -nw% 1% 2' activée, j'ai gdb en cours d'exécution, mais quitter gdb ne fait que le redémarrer, comment je l'ai quitté complètement? – CMCDragonkai

-1

Tout d'abord, assurez-vous que vous construisez avec le débogage source activée (l'aide de l'option -G):

gcc -g -o myfile myfile.c 

Chargez ensuite la décharge dans gdb après l'accident (ou un aperçu, ou ddd)

gdb myfile core 
+17

STACKDUMP! = Coredump – Gerhard

Questions connexes