Я хочу, чтобы gdb остановился, когда поток A приостанавливается, а поток B продолжает выполнение
В вашем вопросе используется одноядерный компьютер, который в наше время встречается крайне редко.
Если у вас многоядерный процессор, тогда оба A и B будут выполняться одновременно, и ваш вопрос не имеет смысла.
Даже если вы выполняете на одноядерном процессореCPU, функция, которую вы запрашиваете, будет (я ожидаю) в основном бесполезной: типичная многопоточная программа будет переключаться между двумя потоками десятки тысяч раз, прежде чем достигнет какого-либо «интересного» кода.Конечно, вы не хотите continue
10000 раз?
При отладке многопоточного кода обычно вы хотите assert
, который различные инварианты хранят в течение выполнения программы.Установка точек останова и пошагового перехода редко помогает в многопоточной отладке.