Понимание количества потоков, созданных приложениемLinux

Ответить
Anonymous
 Понимание количества потоков, созданных приложением

Сообщение Anonymous »


У меня произошел сбой в моем приложении 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, при этом снимая дамп ядра. Но нужно еще раз убедиться.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»