Я знаю ответ на этот вопрос, я размещаю его для других, чтобы увидеть его
Если вы используете eclipse CDT, вы, вероятно, понимаете, что eclipse не является отладчиком, а просто интерфейсом приложения, а именно GDB. Поэтому при отладке программ на С++ вы фактически используете GDB более комфортно. Если вам когда-либо придется отлаживать многопоточную программу в eclipse CDT, вы поймете, что ситуация быстро становится беспокойной, потому что, когда вы нажимаете точку останова, все потоки останавливаются, и когда кто-то пытается выполнить одну строку в определенном потоке, она также запускается другие потоки. Чтобы он работал правильно, потоки должны выполняться произвольно и исключительно, поэтому, когда программист выполняет одну строку, он выполняет только конкретный поток.
Итак, по умолчанию настройки gdb по умолчанию оставляют выключенную "блокировку планировщика". Если вы отлаживаете многопоточные приложения, вы поймете, что это должно быть включено в GDB для достижения желаемого поведения. Как выполнить эту команду:
set scheduler-locking on
в GDB внутри eclipse CDT?