не останавливая все темы в GDB - PullRequest
5 голосов
/ 08 сентября 2010

GDB обычно останавливает все потоки, если достигнута точка останова (или нажата комбинация клавиш Ctrl + C в оболочке GDB). Мне известно, что такие команды, как блокировка планировщика и расписание-несколько, существуют, но я не вижу возможности запустить определенный поток в фоновом режиме, пока другой отлажен.

1 Ответ

9 голосов
/ 08 сентября 2010

Вы можете использовать set target-async on для включения асинхронного режима, если ваша цель поддерживает его. Затем вы можете указать фоновое выполнение с помощью команд. Например,

continue&

может использоваться для запуска одного потока, а

interrupt [-a]

для приостановки выполнения одного потока или всей программы.

В сочетании с режимом без остановки вы можете исследовать один поток, в то время как другие продолжают работать в фоновом режиме:

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

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