pstack命令来自英文词组“process stack”的缩写,其功能是用于显示进程的栈跟踪信息。pstack实际上是gstack的一个链接命令,gstack本身是一个由gdb封装的Shell脚本程序,该命令用于显示指定进程的栈追踪信息。pstack命令必须由管理员身份执行,能够准确地定位进程挂起的位置,使用方法非常简单,仅需后面加上进程号码即可。

语法格式: pstack [参数] 进程号码

常用参数:

-d设置定间隔符(默认为tab)
-s使用串列处理,而非平行处理
--help显示帮助信息
--version显示版本信息

参考示例

显示指定进程的栈跟踪信息:

[root@linux-arae-cc ~]# pstack 4551
Thread 7 (Thread 1084229984 (LWP 4552)):
#0  0x000000302afc63dc in epoll_wait () from /lib64/tls/libc.so.6
#1  0x00000000006f0730 in ub::EPollEx::poll ()
#2  0x00000000006f172a in ub::NetReactor::callback ()
#3  0x00000000006fbbbb in ub::UBTask::CALLBACK ()
#4  0x000000302b80610a in start_thread () from /lib64/tls/libpthread.so.0
#5  0x000000302afc6003 in clone () from /lib64/tls/libc.so.6
#6  0x0000000000000000 in ?? ()
………………省略部分输出信息………………