Lors du débogage des fichiers principaux générés sur une distribution Linux autre que l'environnement de développement , la trace de la pile peut ne pas être fiable. Les exécutables liés dynamiquement utilisent des bibliothèques partagées qui peuvent avoir des implémentations différentes selon la distribution. GDB tentera d'utiliser les versions de bibliothèque disponibles dans l'environnement de développement, qui peuvent différer de celles du système du client. Par conséquent, les adresses de pile peuvent correspondre à différentes routines ou être situées dans des instructions, indiquant une trace de pile inexacte.
Pour obtenir une trace de pile significative, acquérez toutes les bibliothèques partagées de le système du client et définissez le chemin solib-absolute-prefix dans GDB. Cela redirigera GDB vers l'utilisation des bibliothèques du client pour la résolution des symboles.
Au lieu de conseiller aux clients d'exécuter un binaire -g, il est recommandé de :
Cette approche fournit des informations symboliques complètes sans envoyer de binaire de débogage aux clients ni exposer de source sensible. code.
Pour plus d'informations sur le débogage, pensez à vous référer aux ressources suivantes :
Linux :
Solaris :
Ces livres offrent des exemples concrets et des techniques avancées de débogage sous Linux et Solaris, y compris l'analyse d'assemblage.
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!