Я отлаживаю многопоточную программу C ++ с помощью gdb.Вот поток отладки, которого я хотел бы добиться:
- запустить до точки останова, затем приостановить выполнение для всех потоков
- отключить [точки останова] с помощью команды
disable
- вызов функции (определенной в моей программе) для печати состояния вектора (при сохранении других потоков в режиме паузы)
Однако, когда я выполняю вызов функции, которая печатает состояниесистемы несколько раз, значения структуры данных меняются.Если у меня нет какой-либо другой ошибки, это должно означать, что другие потоки работают во время работы моей функции печати.
Вопросы:
- делать другиепотоки возобновляют выполнение, в то время как команда
call
выполняется в GDB? - при условии, есть ли способ отключить это так, чтобы я мог держать потоки приостановленными, пока я анализирую состояние программы с помощью команд
call
?