У меня произошел сбой в моем приложении C++. К счастью, я включил дамп ядра. Я обнаружил, что в дампе ядра имеется не менее 60 строк [NEW LWP ] следующего вида:
[Новый LWP 1926459] [Новый LWP 1926476] [Новый LWP 1926368] [Новый LWP 1926456] [Новый LWP 1926458] [Новый LWP 1926530] [Новый LWP 1926486] [Новый LWP 1926490] [Новый LWP 1926477] Во время отладки в vscode его стек вызовов также отображает несколько следующих записей (имя моего приложения выделено серым цветом):

Недавно мне передали это приложение от предыдущей команды. Это приложение обрабатывает входящие видеокадры. Насколько я понимаю, в приложении не более 10 потоков, как объясняла предыдущая команда.
Вопрос 1. Если все эти LWP и записи стека vscode представляют собой не что иное, как потоки, созданные приложением, действительно ли приложение создает несколько потоков? Действительно ли vscode создает дополнительные потоки в режиме отладки? Если да, то появляются ли эти дополнительные потоки отладки в окне стека вызовов? Или все эти темы действительно указывают на какую-то ошибку в моем приложении?
Вопрос 2. Я не могу продолжить отладку, поскольку в vscode новый поток продолжает достигать первой точки останова, что не позволяет мне выполнять более глубокие вызовы. Как я могу отлаживать иерархию вызовов только в одном конкретном потоке?
PS: Если я правильно помню, я запускаю приложение из терминала, встроенного в режим выпуска cmake, при этом снимая дамп ядра. Но нужно еще раз убедиться.
Мобильная версия