Как найти из какой разделяемой библиотеки начался поток - PullRequest
0 голосов
/ 20 февраля 2020

Вопрос в теме. Позвольте мне объяснить «почему». Я запускаю свое приложение на Red Hat Enterprise Linux Server 7.7. Когда я проверял производительность с помощью htop, я обнаружил, что несколько потоков занимают слишком много ресурсов процессора. Я добавил несколько журналов отладки и обнаружил, что потоки с высокой загрузкой процессора не создаются в моем коде. Поэтому я предполагаю, что эти жадные потоки процессора созданы в сторонних общих библиотеках, которые я использую. Поэтому возникает вопрос: скажем, у меня есть идентификатор потока (17405). Есть ли какой-нибудь способ узнать, какая общая библиотека создала эту тему?

Прошу прощения, если вопрос слишком тривиален - я начал работать с Linux ОС не так давно go.

Спасибо

1 Ответ

0 голосов
/ 21 февраля 2020

На самом деле я нашел решение, которое мне кажется удовлетворительным. Я запускаю gdb, присоединяюсь к своему процессу, затем я могу перечислить все потоки в процессе «информационные потоки», затем я выбираю интересующий меня поток и - вуаля - я могу увидеть трассировку стека, выполнив команду bt. Работает я думаю

...