背景:分析现网问题时,有时需要快速查看某个进程/子线程堆栈调用,便于进一步分析问题,现提供几种不同获取进程堆栈方法。

实现方法:
1.使用gdb attach 调试进程,使用gdb相关cmd调试进程

# gdb -p pid
进入gdb后,可通过
(gdb)bt 查看主进程堆栈
(gdb)info thread 查看线程
(gdb)thread threadid attach 线程
(gdb)bt

2.通过pstack/gstack直接打印堆栈信息

# pstack pid
直接打印堆栈信息,这种方法直接了当

3.通过gcore输出进程coredump文件

# gcore pid
# gdb cmd core
gdb调试进程静态coredump文件

4.strace打印堆栈信息

# strace -f -p pid
动态交互打印进程及其子线程的堆栈信息

5.查看proc文件的stack

# cat /proc/pid/stack 线程堆栈
# cat /proc/pid/proc/pid/stack 子线程堆栈
该方法堆栈信息较少

实际使用中,可以根据实际情况灵活选择不同的方法。

如何快速查看进程/子线程堆栈相关推荐

  1. linux下查看进程的线程数,linux查看进程的线程数

    top -H -p $PID  #查看对应进程的那个线程占用CPU过高 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行 ...

  2. linux命令(一)查看进程的线程数top,ps

    1.ps -T -p <pid> ps -T -p 116115|wc -l 2. top -H -p 116115 查看进程的线程使用率 3.pstree -p 116115|wc -l ...

  3. linux查看pid对应的进程,linux系统中快速查看进程pid的方法

    linux系统中快速查看进程pid的方法 一个很简单的'命令,pgrep,可以迅速定位包含某个关键字的进程的pid:使用这个命令,再也不用ps aux 以后去对哪个进程的pid了 用法: pgrep ...

  4. jstack-查看Java进程的线程堆栈信息,锁定高消耗资源代码

    jstack主要用来查看某个Java进程内的线程堆栈信息.语法格式如下: jstack [option] pid jstack [option] executable core jstack [opt ...

  5. Linux下查看进程和线程

    在linux中查看线程数的三种方法 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行显示一个进程. 2.ps xH 手册 ...

  6. linux进程和线程教程,Linux下查看进程和线程

    在Linux中查看线程数的三种方法 1.top -H 手册中说:-H : Threads toggle 加上这个选项启动top,top一行显示一个线程.否则,它一行显示一个进程. 2.ps xH 手册 ...

  7. 快速get进程、线程基础知识

    前言 为了方便大家理解进线程的工作流程及运行状态,先来看一篇小故事: 我们写好的一行行代码,为了让其工作起来,我们还得把它送进城(进程)里,那既然进了城里,那肯定不能胡作非为了. 但是城里有城里的规矩 ...

  8. java线程 kill linux_linux查看进程和线程的命令

    1.任务:获得进程信息 :ps命令,或者top命令,它能显示当前运行中进程的相关信息,包括进程的PID. ps命令能提供一份当前进程的快照.如果想状态可以自动刷新,可以使用top命令. 2.任务:获得 ...

  9. Linux查看进程的线程信息

    线程是现代操作系统上进行并行执行的一个流行的编程方面的抽象概念.当一个程序内有多个线程被叉分出用以执行多个流时,这些线程就会在它们之间共享特定的资源(如,内存地址空间.打开的文件),以使叉分开销最小化 ...

最新文章

  1. linux内核页高速缓存,《Linux内核设计与实现》读书笔记(十六)- 页高速缓存和页回写(示例代码)...
  2. CGI,FastCGI与PHP
  3. 数据工厂 mysql_.net中利用数据工厂实现多数据库的操作
  4. Asp.net(asp,jsp)+JavaScript动态实现添加数据行
  5. The method setClass(Context, Class?) in the type Intent is not applicable for the arguments (GameV
  6. Compact Normal Storage for Small G-Buffers
  7. 这一次,我们“抓住了” 100 万个程序员!
  8. 阿里星专访丨星罡:因为期待,你需要更出色!
  9. 《计算机操作系统》(慕课版) 第1章 操作系统引论
  10. 学术界布局区块链,日本东京大学开始提供区块链课程
  11. PGP实现邮件加密和签名
  12. 单纯形法算法实现--java版
  13. Linux:进程间通信(创建匿名管道,父子进程间通信,兄弟进程间通信)
  14. RBP系统管理之用户审批
  15. oracle11g ora12560,Oracle11gORA-609TNS12537TNS12560
  16. ssh登录报no matching MAC found. Their offer: hmac-sha2-512异常
  17. android tab 纵向,GitHub - luonzke/VerticalTabLayout: 垂直纵向的TabLayout、轻松创建纵向导航...
  18. 支持javascript的ppt软件_除了PPT还有哪些演示文稿制作软件
  19. python图片换脸_用Python实现简单的‘换脸’
  20. Spring环境搭建错误

热门文章

  1. AndroMDA Getting started(七)
  2. CentOS7 开启 BBR 加速
  3. 错误Access-Control-Allow-Origin原因及解决方法
  4. 【IntelliJ IDEA】idea多次重装打不开的解决办法
  5. 【Python】类型转换:float()函数
  6. 申报不能忘,2022年湖北省各地专精特新小巨人企业奖励补贴政策汇编(附申报条件)
  7. 7.3.2 B+树的基本概念
  8. dlib重新训练dlib_face_recognition_resnet_model_v1.dat
  9. win7配置maven环境变量
  10. 听说你想去大厂看学妹,带你看看小米前端实习岗面试长啥样?