Linux gdb déboguant un programme en cours d'exécution

1.  Obtenez le numéro de processus du programme que vous souhaitez déboguer

2. Pour déboguer le programme en cours d'exécution avec gdb, la commande est la suivante :
gdb attach 100717

3. Pour afficher les threads en cours d'exécution, la commande est la suivante :

fils d'information

Comme vous pouvez le constater, 20 threads sont actuellement en cours d'exécution.

4. Vérifiez les informations de base de chaque thread, afin de savoir dans quel thread mon répertoire de lecture s'exécute. La commande suivante :
thread apply all bt

Je peux clairement savoir que le thread 4 est le thread que je souhaite déboguer

5. Entrez dans le thread de débogage et vérifiez l'état d'exécution, la commande est la suivante :
t 4

 Faut-il passer au fil n° 4 ?

bt

Vérifier l'état de la pile du thread actuel

On peut voir que le thread est bloqué sur msisdn.c:920 , il y a une boucle while, alors définissez un point d'arrêt et laissez le programme s'exécuter à nouveau.

  Le point clé ici est la commande c, qui permet au programme de continuer à s'exécuter, car après avoir gdb, le programme s'est arrêté. Vous pouvez ensuite utiliser single step et next pour vérifier vos variables mémoire.

 

Je suppose que tu aimes

Origine blog.csdn.net/m0_72303088/article/details/131128937
conseillé
Classement