Linux pstack命令[通俗易懂]

Linux pstack命令[通俗易懂]概要打印运行进程的栈信息(快照),包括一个进程下的所有线程的栈信息。语法pstackpid解释pstack是封装了gdb功能的shell脚本,通过”threadapplyallbt”的命令获得输出所有的线程堆栈信息,再用sed进行替换和过滤#RunGDB,stripoutunwantednoise.$GDB–quiet$readnever-nx/proc/$1/exe$1<<EOF2>&1|

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

概要

打印运行进程的栈信息(快照),包括一个进程下的所有线程的栈信息。

语法

pstack pid

解释

pstack是封装了 gdb 功能的 shell 脚本,通过 ” thread apply all bt ” 的命令获得输出所有的线程堆栈信息,再用 sed 进行替换和过滤

# Run GDB, strip out unwanted noise.
$GDB --quiet $readnever -nx /proc/$1/exe $1 <<EOF 2>&1 |
set width 0
set height 0
set pagination no
$backtrace
EOF
/bin/sed -n \
    -e 's/^\((gdb) \)*//' \
    -e '/^#/p' \
    -e '/^Thread/p'

用处

通常在服务运行不符合预期时,可以使用 pstack 来确定进程挂起的位置。比如因为死锁导致服务不响应了,使用该命令会找到照成死锁的代码位置。另一个常见的case是定位死循环,可以在同一时间段内多次执行pstack命令,若发现代码栈总是停在同一个位置,那个位置就需要重点关注,很可能就是出问题的地方

线程执行的时间

如果我们想要查询某一线程已经运行的时间,可以使用以下命令来完成

ps -eLo pid,lwp,pcpu |grep tid

这样可以定位出一些执行得比较慢的线程

参考文献

1、https://www.cnblogs.com/chenxinshuo/p/11986858.html

2、https://www.cnblogs.com/kongzhongqijing/articles/7685699.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193893.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JDK安装与配置详细图文教程

    JDK安装与配置详细图文教程JDK安装与配置详细图文教程   目的:本人健忘,以后难免会重装系统啥的,软件卸了装是常有的事,特此写此详细教程,一是方便自己以后重装的时候可以看看;二是如果有某位初学者有幸光临,也可以给一点参照。下面我会从JDK的下载、安装、环境变量的配置和其中的一些问题进行详细说明,Letgo!一、下载JDK是个免费的东东,所以大家不要去百度啥激活成功教程版了,直接去官网下载最新版本吧,比较安全,官网

    2022年7月8日
    16
  • 伪装计算机主机,位置伪装大师电脑版

    伪装计算机主机,位置伪装大师电脑版《位置伪装大师电脑版》是一款免费的GPS位置变换软件,《位置伪装大师电脑版》能够进行GPS位置模拟,让你轻松变换自己的位置,变换位置随心所欲!官方介绍位置伪装大师v3.6新版来袭!变换位置,随心所欲!!全新的界面,全新的功能,全新的体验。更加简洁、更加人性化的操作流程。功能介绍-支持国外伪装,实现全球伪装-一键收藏地点,方便快捷-多种搜索模式,可以快速找到位置-支持经纬度定位,精确寻找位置…

    2022年5月10日
    51
  • 补码 转换_三线8译码器有什么型号

    补码 转换_三线8译码器有什么型号补码转换`timescale1ns/10psmoduledevice(a,a_comp);input[7:0]a;//括号要写在前面output[7:0]a_comp;wire[6:0]b;//按位取反的幅度位wire[7:0]y;//负数的补码assignb=~a[6:0];assigny[6:0]=b+1;//按位取反再加1assigny[7]=a[7];//符号位不变assigna_comp=a[7]?y:a;//二选一endmodulemodule

    2022年9月17日
    0
  • iframe透明覆盖div_iframe全屏覆盖原页面

    iframe透明覆盖div_iframe全屏覆盖原页面父页面子页面body{background-color:transparent;}

    2025年6月27日
    0
  • PYQT5 pycharm 编程环境和环境变量配置[通俗易懂]

    PYQT5 pycharm 编程环境和环境变量配置[通俗易懂]基本的环境配置

    2025年5月23日
    0
  • navicat for mysql 15 激活码 3月最新注册码「建议收藏」

    navicat for mysql 15 激活码 3月最新注册码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    568

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号