前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 命令(148) —— pstack 命令

Linux 命令(148) —— pstack 命令

作者头像
恋喵大鲤鱼
发布2022-10-25 19:33:21
1.5K0
发布2022-10-25 19:33:21
举报
文章被收录于专栏:C/C++基础C/C++基础

文章目录

1.命令简介

pstack(print stack)命令用于打印正在运行的进程栈跟踪。

如果二进制文件中存在 ELF 符号(通常情况下,除非运行 strip(1)),那么也会打印符号地址。如果进程是线程组的一部分,那么 pstack 将为组中的每个线程打印栈跟踪。

pstack 实际上是 gstack 的一个软链接,而 gstack 本身是基于 gdb 封装的 Shell 脚本。

pstack 命令必须由相应进程的属主或 root 运行,可以使用 pstack 来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的 PID。

pstack 命令在排查进程问题时非常有用,比如我们发现一个服务一直处于 work 状态(如假死状态,好似死循环),使用这个命令就能轻松定位问题所在。可以在一段时间内,多执行几次 pstack,若发现代码栈总是停在同一个位置,那个位置就需要重点关注,很可能就是出问题的地方。

2.命令格式

代码语言:javascript
复制
pstack <pid>

3.选项说明

无。

4.常用示例

(1)查看指定进程栈跟踪,如 1 号进程。

代码语言:javascript
复制
# pstack 1
#0  0x00007f0ce63fa0e3 in epoll_wait () from /lib64/libc.so.6
#1  0x0000564f3e9bbad9 in sd_event_wait ()
#2  0x0000564f3e9bc5ed in sd_event_run ()
#3  0x0000564f3e91b6b7 in manager_loop ()
#4  0x0000564f3e90f80b in main ()

参考文献

pstack(1) - Linux man page

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1.命令简介
  • 2.命令格式
  • 3.选项说明
  • 4.常用示例
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档