Comment définir un point d'arrêt dans gdb?
(gdb) b nom de fichier: numéro de linge // par ex. b main.cpp: 100
Existe-t-il un moyen de forcer un abandon? Je me souviens qu'il y avait un ENV var pour contrôler cela?
J'étais sous l'impression qu'elle avortait par défaut. Assurez-vous que la version de débogage est installée.
Ou utiliser libdmalloc5. « Drop en remplacement Ces installations comprennent des éléments tels que le suivi-fuite de mémoire malloc',
realloc « calloc',
libre » et d'autres programmes de gestion de la mémoire tout en offrant de puissantes fonctionnalités de débogage configurables à l'exécution du système, fence- détection post-écriture, rapport de numéro de fichier/ligne et consignation générale des statistiques. "
Ajouter à votre commande lien
-L/usr/lib/debug/lib -ldmallocth
gdb automatiquement le contrôle doit retourner quand glibc déclenche un arrêt prématuré.
Ou vous pouvez configurer un gestionnaire de signal pour SIGABRT pour vider la piletrace vers un fd (descripteur de fichier). Ci-dessous, mp_logfile est un fichier *
void *array[512/sizeof(void *)]; // 100 is just an arbitrary number of backtraces, increase if you want.
size_t size;
size = backtrace (array, 512/sizeof(void *));
backtrace_symbols_fd (array, size, fileno(mp_logfile));
Je pense que cette question nécessite des réponses différentes en fonction du système spécifique et n'est pas limitée à Linux (par exemple OpenBSD, OSX). – rwst