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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам