2010-09-08 10 views
5

GDB stoppt normalerweise alle Threads, wenn ein Haltepunkt erreicht ist (oder Strg + C in der GDB-Shell gedrückt wird). Ich bin mir bewusst, dass Befehle wie scheduler-locking und schedule-multiple existieren, aber ich sehe keine Möglichkeit, einen definierten Thread im Hintergrund laufen zu lassen, während ein anderer debuggt.nicht alle Threads in GDB stoppen

Antwort

9

Sie können set target-async on verwenden, um den asynchronen Modus zu aktivieren, wenn Ihr Ziel dies unterstützt. Dann können Sie die Hintergrundausführung mit Befehlen festlegen. Zum Beispiel

continue& 

können einen einzelnen Thread ausgeführt werden, und

interrupt [-a] 

Ausführung eines einzelnen Thread zu unterbrechen oder das gesamte Programm.

In Verbindung mit Non-Stop-Modus können Sie einen einzigen Thread untersuchen, während andere weiterhin im Hintergrund laufen zu lassen:

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

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

tadellos die Frage beantwortet. Vielen Dank. – azraiyl

Verwandte Themen