2010-09-08 6 views
5

GDB arrête normalement tous les threads si un point d'arrêt est atteint (ou si Ctrl + C est enfoncé dans le shell GDB). Je suis conscient que des commandes telles que scheduler-locking et schedule-multiple existent, mais je ne vois aucune possibilité de laisser un thread défini s'exécuter en arrière-plan tandis qu'un autre est débogué.n'arrête pas tous les threads dans gdb

Répondre

9

Vous pouvez utiliser set target-async on pour activer le mode asynchrone si votre cible le prend en charge. Ensuite, vous pouvez spécifier l'exécution en arrière-plan avec des commandes. Par exemple,

continue& 

peut être utilisé pour exécuter un seul fil, et

interrupt [-a] 

à suspendre l'exécution d'un seul fil, ou tout le programme.

En liaison avec le mode non-stop, vous pouvez examiner un seul fil tandis que d'autres continuent de fonctionner en arrière-plan:

# If using the CLI, pagination breaks non-stop. 
set pagination off 

# Finally, turn it on! 
set non-stop on 
# Before debugging is started! 
+0

répond parfaitement à la question. Merci. – azraiyl

Questions connexes