Je veux savoir comment procéder pour déboguer un problème STACKOVERFLOW sur des cibles. Je veux dire quelles sont les étapes que nous devrions suivre pour arriver à une conclusion.Comment déboguer un problème de stackoverflow sur des cibles
Répondre
Mettez un point de contrôle d'écriture en mémoire pour un mot après la fin de votre espace de pile. Ensuite, le débogueur interviendra quand cet endroit sera écrit, et vous pourrez voir ce qui est en cause.
Cela ressemble à une bonne option, va essayer celui-ci – dara
Exécutez-le via un débogueur tel que gdb. Le backtrace au moment du débordement de la pile vous dira exactement quelle fonction ou quelles fonctions se répètent indéfiniment. À partir de là, déterminez quelle (s) entrée (s) de ces fonctions ne changent pas, et ne déplacez pas la fonction (si elle est récursive) vers une base de départ qui mettra fin à la récursivité.
Toutes les piles peuvent être remplies au démarrage avec une certaine valeur hexadécimale (par exemple 0xAAAAAAAA). Et puis, en utilisant une routine spéciale, vous pouvez surveiller périodiquement l'utilisation maximale de toute la pile en calculant la quantité de valeurs connues (0xAA ..) à partir de la fin de la pile jusqu'à ce que vous trouviez la première différence.
Que voulez-vous dire par "cibles"? Nous avons besoin de plus d'informations. –
J'ai mis la cible pour la rendre générique ... mais mon problème concerne les processeurs ARM 7,9. Supposons que j'ai Lauterback et trace32 disponible – dara