2010-09-08 18 views
5

GDB normalmente arresta tutti i thread se viene raggiunto un punto di interruzione (o Ctrl + C viene premuto nella shell GDB). Sono consapevole che esistono comandi come scheduler-locking e schedule-multiple, ma non vedo alcuna possibilità che un thread definito venga eseguito in background mentre un altro è sottoposto a debug.non interrompe tutti i thread in gdb

risposta

9

È possibile utilizzare set target-async on per abilitare la modalità asincrona, se il target lo supporta. Quindi, è possibile specificare l'esecuzione in background con i comandi. Ad esempio,

continue& 

può essere utilizzato per eseguire un singolo filo, e

interrupt [-a] 

di sospendere l'esecuzione di un singolo filo, o l'intero programma.

In concomitanza con modalità non-stop, è possibile esaminare un singolo thread, mentre altri continuano a funzionare in background:

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

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

risponde perfettamente alla domanda. Grazie. – azraiyl

Problemi correlati