Si vous avez déjà développé des programmes en langage C, il vous est probablement arrivé de manipuler les pointeurs, et de provoquer accidentellement des violations mémoire entraînant un arrêt involontaire du programme en cours d'exécution. Que faire pour éviter d'être démuni si cela se produit ? Comment localiser l'origine du problème sans faire appel à un debugger ? Une solution existe sous la forme d'une fonction bibliothèque : backtrace(). Nous allons voir comment l'utiliser dans cet article.
Le code présenté dans cet article a été testé sur Devuan et est disponible sur le GitHub de GNU/Linux Magazine.
1. Les dangers du C
Les développeurs C manipulent fréquemment des objets appelés pointeurs. Ces pointeurs sont des variables contenant l'adresse d'une entité qui peut être, par exemple, une fonction, un entier, un flottant, une structure de données, une chaîne de caractères, une zone mémoire allouée dynamiquement, le début d'une zone de mémoire...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première