【问题标题】:Getting thread name from different process从不同的进程获取线程名称
【发布时间】:2014-07-02 10:07:41
【问题描述】:

我们在 qnx 环境中为我们的应用程序运行了不同的 exe。 并且每个 exe 都有多个线程。

现在我想从特定进程中获取所有进程的所有线程的线程名称。 例如:我们有 10 个进程,每个进程有 10 个线程。所以线程总数是100。 我必须从这些进程之一(即进程号 5)中获取所有这 100 个线程名称

我尝试使用 pthread_getname_np()

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

但这会返回当前正在执行的进程的线程名称。 例如:它返回我只有进程号 5 的线程,因为这是当前正在执行的。

我有所有进程和线程的进程 ID 和线程 ID。我现在想获取这些线程的名称。

任何建议都会很有帮助。

提前致谢。

【问题讨论】:

    标签: multithreading pthreads qnx qnx-neutrino


    【解决方案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中定义

    【讨论】:

      猜你喜欢
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 2013-02-28
      • 2012-03-14
      相关资源
      最近更新 更多