понимать вывод GDB для нового потока (системный тег Linux) - PullRequest
1 голос
/ 12 декабря 2011

В настоящее время я отлаживаю приложение, которое использует pthreads. Когда я прикрепляю GDB он непрерывно печатает сообщения этой формы:

[Новая тема a_hex_number (LWP a_dec_number )]

Я предполагаю, что a_hex_number - это адрес, но чей это адрес? Я предполагаю, что a_dec_number - это уникальный идентификатор созданного потока, не так ли?

Верны ли мои предположения? Кто-нибудь может дать мне более подробную информацию о числах и их значении? Я уже прочитал этот документ , но у меня все еще проблемы с получением полной картины. Вероятно, информация о системных систагах Linux мне очень поможет.

1 Ответ

2 голосов
/ 13 декабря 2011

Я предполагаю, что a_hex_number - это адрес, но чей это адрес?

Это адрес дескриптора потока (в Linux также результат вызова pthread_self()).

Я предполагаю, что a_dec_number - это уникальный идентификатор для созданного потока,это?

Нет, это идентификатор потока, назначенный ядром этому потоку.Это то же самое, что видно в выводе ps (в Linux потоки и процессы clone(2) имеют очень мало различий на уровне ядра).

...