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
5
A
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!
risponde perfettamente alla domanda. Grazie. – azraiyl