linux gstack pstack 进程运行堆栈查看工具

article/2025/10/4 17:19:31

pstack的作用

1). 查看线程数(比pstree, 包含了详细的堆栈信息)

2). 能简单验证是否按照预定的调用顺序/调用栈执行

3). 采用高频率多次采样使用时, 能发现程序当前的阻塞在哪里, 以及性能消耗点在哪里?

4). 能反映出疑似的死锁现象(多个线程同时在wait lock, 具体需要进一步验证)

 

pstack的安装

pstack是gdb的一部分,如果系统没有pstack命令,使用yum搜索安装gdb即可

yum install gdb -y

 

pstack 与 gstack 区别

pstack是/usr/bin/gstack的软链接

 

使用实例

问题:php某进程一直卡着在running,找不到具体原因

执行 gstack 1696 效果如下:

可以看到运行堆栈信息已经打印出来,可根据信息排错

 

pstack原理

gstack本身是基于gdb封装的shell脚本.

让我们简单分析下这个强大的shell脚本:

由于代码太长, 这边选取最核心的片段, backtrace="thread apply all bt"
shell采用了here document的方式, 完成了GDB的交互工作(注意EOF标识, 及范围内的交互命令). 
重要的是输入thread apply all bt这个交互命令. 该命令要求输出所有的线程堆栈信息.
对GDB输出的结果, 通过管道并借助sed命令进行了替换和过滤.

pstack其实是gdb的一个功能封装, 但其实现的功能, 确实非常实用

 

 


http://chatgpt.dhexx.cn/article/sW9eMARV.shtml

相关文章

利用pstack 和 strace分析程序在哪里耗时?

目前测试了nws服务器代码中的while(!stop){...}死循环,发现while循环一次有的线程需要100ms左右,这个时间就有点长了。于是利用如下linux的ps、pstack和strace对程序进行了分析。 ps查找进程的pid pstack打印进程或者线程的栈信息 strace 统计每一步系…

linux下多线程调试,以及一些常用工具总结(pstack/pstree/stress/perf)

一、多线程调试 使用gdb查看线程信息。 (1)获取主线程id:ps -aux | grep 进程名称,例如: (2)查看线程信息:gdb attach 线程id,例如 1和3表示进程启动运行依赖的库的信息&…

Linux 下的 pstack 工具安装及简单应用

作者 | JiekeXu 来源 | JiekeXu之路(ID: JiekeXu_IT) 转载请联系授权 | (微信ID:xxq1426321293) 大家好,我是 JiekeXu,很高兴又和大家见面了,今天分享下 Linux 下的 pstack 工具安装及简单应用。本文首发于微信公众号【…

pstack工具查看线程堆栈的方法

作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> pstack是Linux下查看运行线程堆栈的工具,本质是一个shell脚本。 # 1.pstack工具的安装   很多时候pstack和gdb是一块安装的。但是在一些Lin…

TCP 的 NACK 与 SACK

可靠传输,一旦丢包,必然 HoL blocking,NACK 和 SACK 必须二选一驱动重传: NACK:receiver 主动通告没有收到的报文,sender 收到后重传。 SACK:receiver 主动通告收到的报文,sender …

Linux常用命令——pstack命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) pstack 显示每个进程的栈跟踪 补充说明 pstack命令可显示每个进程的栈跟踪。pstack命令必须由相应进程的属主或root运行。可以使用pstack来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的PID。…

【Linux】程序卡死、失败位置|pstack和starce看进程调用|分析耗时函数

目录 即看即用 1,starce 2,pstack 查找进程卡死原因的工具 starce pstack 利用pstack 和 strace分析程序在哪里耗时? 即看即用 区别: 使用 pstack 获得的进程堆栈是程序的静态信息,而使用 strace 可以获得程序的动态信息&#xff0c…

详解命令-pstack

pstack命令可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack 来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的 PID。 实例 pstree以树结构显示进程 pstree -p work | grep ad sshd(22669)---bash(22670)---ad_preproc…

pstack/gstack

pstack是一个shell脚本,用于打印正在运行的进程的栈跟踪信息,它实际上是gstack的一个链接,而gstack本身是基于gdb封装的shell脚本.。此命令可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack 来确定进程…

linux命令-- pstack命令(跟踪进程栈)

pstack是一个shell脚本,用于打印正在运行的进程的栈跟踪信息,它实际上是gstack的一个链接,而gstack本身是基于gdb封装的shell脚本.。此命令可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack 来确定进程…

pstack使用和原理

前言:   最近小组在组织<<深入剖析Nginx>>的读书会, 里面作者提到了pstack这个工具. 之前写JAVA程序, 对jstack这个工具, 非常的喜欢, 觉得很有用. 于是想比较下pstack和jstack的异同.   和jstack一样, pstack亦能展现进程的线程堆栈快照, 非常方便验证和性能…

RDMA RC UC UD

RC:面向连接的可靠服务 UC:面向连接的不可靠服务 UD:面向数据报的不可靠服务 面向连接 vs 面向数据报 相同点&#xff1a;两者的通信均包括双方QP对的参与 不同点&#xff1a;面向连接的通信若有N个节点与之通信&#xff0c;本机需要N个QP对&#xff1b; 面向数据报的通信…

WiFi 芯片原厂、模组厂 一文看懂IOT WiFi选择

一&#xff1a;国内常用WiFi原厂 瑞昱 RTL8710、乐鑫 ESP8266、德州仪器 TI cc3200、紫光展锐RDA5981、新干线NL6621、联发科 MT7681、高通 QCA4004。 博通Broadcom Corporation 博通是Wi-Fi芯片一哥&#xff0c;作为领先的半导体厂商&#xff0c;博通在无线领域的优势有目共睹…

51单片机系列--AD/DA

介绍 AD&#xff08;Analog to Digital&#xff09;&#xff1a;模拟-数字转换&#xff0c;将模拟信号转换为计算机可操作的数字信号 DA&#xff08;Digital to Analog&#xff09;&#xff1a;数字-模拟转换&#xff0c;将计算机输出的数字信号转换为模拟信号 计算机系统是一…

RDA5981开发环境安装

满满的到处是坑~~ 一&#xff1a;Keil MDK 安装 1.安装KEIL MDK 5.24a版本以及破解。 2.添加环境变量&#xff1a;C:\Keil_v5\ARM\ARMCC\bin 二&#xff1a;GCC-ARM交叉编译安装 1.从 https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads 下载最新版本 win7…

8259A简介

文章目录 1中断简介1.1中断1.2禁止中断与中断屏蔽1.3中断嵌套1.4中断类型号和中断向量表 2,8259A简介2.1 8259A介绍2.2 8259A内部结构2.3 8259A引脚2.3.1 与CPU相连的引脚2.3.2 与外设相连的引脚 2.4 8259a可编程寄存器 1中断简介 1.1中断 定义&#xff1a;CPU暂停当前程序的…

RTL8201-RMII电路

本文分享一下RTL8201如何用作RMII电路&#xff0c;无需外部晶体&#xff0c;时钟由主芯片产生。 RTL8201是常用的百兆电流型PHY&#xff0c;支持端口自动翻转&#xff08;AUTO MDIX&#xff09;&#xff0c;如下框图 RMII相对MII来说&#xff0c;连接线更少&#xff0c;MII需要…

RDMA 、RoCE 、IB 、TCP、Ethernet

ROCE ROCE&#xff08;Remote Direct Memory Access over Converged Ethernet&#xff09;是一种网络技术&#xff0c;它结合了RDMA&#xff08;远程直接内存访问&#xff09;和以太网交换机的特性。ROCE允许主机之间通过以太网进行高效的直接内存访问&#xff0c;从而提供低延…

RTD2785T RTD2785R 2K eDP屏驱动芯片介绍

RTD2785T 支持VGA2HDMI2DP转eDP&LVDS 2K分辨率 支持按键菜单和Uart串口通信&#xff0c;用于工控MCU通过uart指令调节参数 文章转载&#xff1a; RTD2785T 2HDMI2DP转eDP&LVDS 2K方案设计-易显方案设计 (rtddisplay.com)

【RDMA】15. RDMA之RoCE Soft-RoCE

【RDMA】RDMA 学习资料总目录_bandaoyu的笔记-CSDN博客SavirRDMA 分享1. RDMA概述https://blog.csdn.net/bandaoyu/article/details/112859853https://zhuanlan.zhihu.com/p/1388747382. 比较基于Socket与RDMA的通信https://blog.csdn.net/bandaoyu/article/details/1128613993…