Получение имени потока из другого процесса

У нас есть разные исполняемые файлы, работающие для нашего приложения в среде qnx. И каждый exe-файл имеет несколько потоков.

Теперь я хочу получить имена потоков всех потоков всех процессов из определенного процесса. Пример: у нас есть 10 процессов по 10 потоков в каждом. Таким образом, общее количество потоков равно 100. Мне нужно получить все эти 100 имен потоков из одного из этих процессов (т.е. процесса № 5).

Я пытался использовать pthread_getname_np()

pthread_getname_np(status.tid, thredtable[threadTabIndex].ThreadName, 100);

Но это возвращает мне имя потока текущего процесса, который выполняется. Пример: он возвращает мне потоки только процесса № 5, так как он выполняется в данный момент.

У меня есть идентификаторы процессов и идентификаторы потоков всех процессов и потоков. Теперь я хочу получить имена потоков для них.

Любые предложения будут действительно полезны.

Заранее спасибо.


person Manjunath K Mayya    schedule 02.07.2014    source источник


Ответы (1)


Используя __getset_thread_name, проблема решена.

extern int  __getset_thread_name(pid_t __pid, pthread_t __thr, const char *__newname,
                                  int __newname_len, char *__prevname, int __prevname_len);

Этот метод определен в pthread.h.

person Manjunath K Mayya    schedule 04.07.2014