我有一个运行8个独立线程的应用程序,通过Pthread周围的包装器类生成。所有线程都在无限的while循环中运行,每个线程的周期时间为1秒。从主线程(Main函数,也运行在无限的while循环中),我想监控线程的状态,看线程是否因为某种原因被阻塞了。有没有办法通过系统调用来监控线程状态?
发布于 2017-03-21 14:27:27
GDB是最好的选择,
使用以下命令将gdb附加到正在运行的进程
gdb -p "pid"
info threads这将显示应用程序中的所有线程以及每个线程的状态
发布于 2017-04-15 15:06:01
您可以访问proc文件系统中的进程状态信息。使用线程的PID,您可以在/proc/[PID]/status中查找它们的状态
状态文件的内容如下所示:
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
...https://stackoverflow.com/questions/42919645
复制相似问题