use*_*876 39 c c++ linux multithreading
我有一个用C/C++编写的多线程Linux应用程序.我为我的线程选择了名字.为了帮助调试,我希望这些名称在GDB,"top"等中可见.这是可能的,如果是这样,如何?
(有很多理由知道线程名称.现在我想知道哪个线程占用了50%的CPU(由'top'报告).而且在调试时我经常需要切换到不同的线程 - 目前我必须做" thread apply all bt"然后查看回溯输出页面以找到正确的线程).
该视窗解决方案就在这里 ; 什么是Linux?
Fus*_*awn 43
Posix线程?
这显然不会编译,但它会让你知道去哪里打猎.我甚至不确定它是正确的PR_命令,但我认为它是.有一阵子了...
#include <sys/prctl.h>
prctl(PR_SET_NAME,"<null> terminated string",0,0,0)
Run Code Online (Sandbox Code Playgroud)
lot*_*har 14
如果您使用像ACE这样的库,则Thread可以在创建新线程时指定线程名称.
BSD Unix也有一个pthread_set_name_np调用.
否则,你可以使用使用prctl由Fusspawn提及.
| 归档时间: |
|
| 查看次数: |
26155 次 |
| 最近记录: |