Recherche des erreurs « double libre ou corruption »
Lorsque vous rencontrez des erreurs « double libre ou corruption » dans les programmes C, recherchez la source de le problème peut être difficile. Bien que les instructions d'impression puissent s'avérer inefficaces, GDB offre une solution puissante.
Utiliser GDB pour le suivi des erreurs
Pour faciliter la détection des erreurs, définissez la variable d'environnement MALLOC_CHECK_ sur 2, ce qui active la variante malloc tolérante aux erreurs de la glibc. Cette version garantit que votre programme s'arrête immédiatement après avoir effectué une double libération.
Dans GDB, exécutez la commande suivante :
set environment MALLOC_CHECK_ 2
Ensuite, exécutez votre programme. GDB terminera l'exécution au point de double free, affichant l'appel free() problématique dans la trace.
Ressources supplémentaires
Pour plus d'informations sur le dépannage " erreurs de double gratuité ou de corruption", reportez-vous à la page de manuel de malloc(), disponible ici :
man malloc
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!