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
5
A
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!
tadellos die Frage beantwortet. Vielen Dank. – azraiyl