首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Linux的C++:pthread状态监控

基于Linux的C++:pthread状态监控
EN

Stack Overflow用户
提问于 2017-03-21 14:12:36
回答 2查看 457关注 0票数 1

我有一个运行8个独立线程的应用程序,通过Pthread周围的包装器类生成。所有线程都在无限的while循环中运行,每个线程的周期时间为1秒。从主线程(Main函数,也运行在无限的while循环中),我想监控线程的状态,看线程是否因为某种原因被阻塞了。有没有办法通过系统调用来监控线程状态?

EN

回答 2

Stack Overflow用户

发布于 2017-03-21 14:27:27

GDB是最好的选择,

使用以下命令将gdb附加到正在运行的进程

代码语言:javascript
复制
gdb -p "pid"

info threads

这将显示应用程序中的所有线程以及每个线程的状态

票数 0
EN

Stack Overflow用户

发布于 2017-04-15 15:06:01

您可以访问proc文件系统中的进程状态信息。使用线程的PID,您可以在/proc/[PID]/status中查找它们的状态

状态文件的内容如下所示:

代码语言:javascript
复制
ubuntu@ip-172-30-1-159:/proc/1151$ cat status
Name:   systemd-logind
State:  S (sleeping)
Tgid:   1151
Ngid:   0
Pid:    1151
PPid:   1
TracerPid:  0
Uid:    0   0   0   0
Gid:    0   0   0   0
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42919645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档