使用PThreads获取正在运行的进程的所有线程ID

时间:2017-11-09 13:04:19

标签: c linux pthreads bsd

我尝试在Linux或FreeBSD下调试启用Pthread的程序。因此,我需要程序中运行的所有线程的id(就pthread_t线程标识符而言)。例如,作为pthread_t的数组。但我无法修改线程的功能,因为一方面我无法访问某些库的源代码,另一方面并行代码的部分是使用OpenMP实现的,没有线程函数,我可以修改。

是否有可移植的方式来获取程序当前存在的pthread的数量及其pthread_t标识符?我必须意识到的最后一件事看起来像

int n = get_number_of_threads(); 
pthread_t *threads = get_thread_list(); 
for ( i = 0; i < n; i++) {
    pthread_kill(threads[i], SIGUSR1); 
}

0 个答案:

没有答案