什么包提供了 pstack 命令

对于 CentOS/RHEL 5

pstack 包可以通过以下方式安装:

# yum install pstack

对于 CentOS/RHEL 6,7

在 CentOS/RHEL 6/7 中,pstack 工具由 gdb 包提供。
要安装 gdb,请执行以下操作:

# yum install gdb

gdb 包将包含 gstack 和 pstack 命令。
例如:

# rpm -ql gdb-7.2-92.el6.x86_64 | egrep "pstack|gstack"
/usr/bin/gstack
/usr/bin/pstack

命令用法

然后,我们可以将其称为“pstack”或者“gstack”。

# gstack
Usage: gstack [process-id]
# pstack 
Usage: pstack [process-id]
欢迎 on it road

例子

# gstack 21142
Thread 2 (Thread 0x7f1b3181b700 (LWP 21148)):
#0 0x0000003dfaadf3e7 in ppoll () from /lib64/libc.so.6
#1 0x0000003a4f43298e in pa_rtpoll_run () from /usr/lib64/libpulsecore-0.9.21.so
#2 0x00007f1b27bfb0a7 in ?? () from /usr/lib64/pulse-0.9.21/modules/module-null-sink.so
#3 0x00000032b12389b8 in ?? () from /usr/lib64/libpulsecommon-0.9.21.so
#4 0x0000003dfae079d1 in start_thread () from /lib64/libpthread.so.0
#5 0x0000003dfaae89dd in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7f1b376ad740 (LWP 21142)):
#0 0x0000003dfaadf3e7 in ppoll () from /lib64/libc.so.6
#1 0x00000032b161cb87 in pa_mainloop_poll () from /usr/lib64/libpulse.so.0
#2 0x00000032b161dec9 in pa_mainloop_iterate () from /usr/lib64/libpulse.so.0
#3 0x00000032b161df80 in pa_mainloop_run () from /usr/lib64/libpulse.so.0
#4 0x000000000040a927 in main ()
# pstack 21142
Thread 2 (Thread 0x7f1b3181b700 (LWP 21148)):
#0 0x0000003dfaadf3e7 in ppoll () from /lib64/libc.so.6
#1 0x0000003a4f43298e in pa_rtpoll_run () from /usr/lib64/libpulsecore-0.9.21.so
#2 0x00007f1b27bfb0a7 in ?? () from /usr/lib64/pulse-0.9.21/modules/module-null-sink.so
#3 0x00000032b12389b8 in ?? () from /usr/lib64/libpulsecommon-0.9.21.so
#4 0x0000003dfae079d1 in start_thread () from /lib64/libpthread.so.0
#5 0x0000003dfaae89dd in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7f1b376ad740 (LWP 21142)):
#0 0x0000003dfaadf3e7 in ppoll () from /lib64/libc.so.6
#1 0x00000032b161cb87 in pa_mainloop_poll () from /usr/lib64/libpulse.so.0
#2 0x00000032b161dec9 in pa_mainloop_iterate () from /usr/lib64/libpulse.so.0
#3 0x00000032b161df80 in pa_mainloop_run () from /usr/lib64/libpulse.so.0
#4 0x000000000040a927 in main ()
如何在 CentOS/RHEL 上执行 Pstack 命令

pstack(1) 命令打印正在运行的进程的堆栈跟踪。
使用以下步骤在 CentOS/RHEL 系统上安装它。

日期:2020-09-17 00:13:37 来源:oir作者:oir