我有一个用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是什么?

推荐答案

Posix线程?

这显然不会编译,但它会让你知道go 哪里打猎.我甚至不确定这是正确的PR_指令,但我认为是的.已经有一段时间了...

  #include <sys/prctl.h>
  prctl(PR_SET_NAME,"<null> terminated string",0,0,0)

Linux相关问答推荐

在新环境中使用Unicode范围的sed表达式有问题

AWK:按第一列匹配两个文件不起作用

重命名具有相同前缀的文件对中最旧的文件

BASH:在curl输出的每一行添加前缀

Boost更新失败,现在不确定我有哪个版本

加载ELF64头文件为什么会导致分段错误?

在 linux 中插入带有 sed 命令的文件的行

Bash shift 改变了关联数组的期望值

问题:Virtio rpmsg 总线 virtio0:收到的 msg 没有收件人 - 在 Yocto Hardknott - imx7d-pico

如何安装脚本以从命令行的任何位置运行?

如何指定链接时使用的库版本?

如何比较两个压缩包的内容

仅当当前行中存在字符串时才替换

SVN 错误:无法将字符串从本机编码转换为UTF-8

我可以在 Ubuntu 上使用 Homebrew 吗?

列出当前目录和所有子目录中特定大小的文件

Linux下的签名可执行文件

在 Linux 中的特定行向文件添加文本

PostgreSQL psql 终端命令

内联 if shell 脚本