我有一个用C / C ++编写的多线程Linux应用程序。我有chosen names for my threads。为了帮助调试,我希望这些名称在GDB,“top”等中可见。这是可能的,如果是这样的话?
(有很多reasons to know the thread name。现在我想知道哪个线程占用了50%的CPU(由'top'报告)。而在调试时我经常需要切换到不同的线程 - 目前我必须做“thread apply all bt
”然后查看回溯输出的页面以找到正确的线程。)
Windows solution is here;什么是Linux?
答案 0 :(得分:43)
Posix线程?
这显然不会编译,但它会让你知道去哪里打猎。我甚至不确定它是正确的PR_
命令,但我认为它是。已经有一段时间......
#include <sys/prctl.h>
prctl(PR_SET_NAME,"<null> terminated string",0,0,0)
答案 1 :(得分:14)