Получение имени потока из другого процесса
У нас есть разные исполняемые файлы для нашего приложения в среде 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