如何快速查看进程/子线程堆栈

2023-10-30

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

实现方法:
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 子线程堆栈 
该方法堆栈信息较少

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何快速查看进程/子线程堆栈 的相关文章

  • ESP32+TFTLCD实现WiFi天气语音播报(六)

    ESP32 MY1680U实现语音播报 文章目录 ESP32 MY1680U实现语音播报 前言 一 MY1680U 12P 语音模块 1 概述 2 参数说明 二 代码实现 1 MY1690 c 2 MY1690 h 3 main c 总结
  • 鸿蒙系统开发工具DevEco Studio 2.2下载/安装教程

    鸿蒙开发包括鸿蒙应用开发 手机app 和鸿蒙设备开发 硬件开发 两大部分 其中设备开发又包括TV 音响 眼镜 手表 PC 平板 汽车 耳机以及未来的各种智能家居 手机作为一个超级终端 与各种设备实现互联 未来无论是在工作 学习 运动还是做家
  • Ubuntu卸载Anaconda步骤

    1 进行相关文件的删除 删除12个文件夹 删除anaconda3文件夹 rm rf anaconda3 删除 anaconda文件夹 rm rf anaconda 删除 condarc文件夹 rm rf condarc 删除 conda文件
  • QT项目移植Ubuntu碰到的问题及解决

    项目可以直接移植 移植过程中需要删除两个文件 意思就是除了项目相关的文件 其他的编译文件不要移植过去 我的项目似乎是这几个文件的问题 要是不删除上面多余文件的话 我的项目是直接从windows复制到装载ubuntu的虚拟机上 不删的话 在w
  • Ubuntu 20.04 搭建 Fisco-BCOS 2.8.0 区块链系统

    0 摘要 本文根据 Fisco BCOS 及 Webase 官方文档 就安装过程做了详细描述 针对官方文档中一些不清楚的地方 做了补充 方便新手搭建 1 准备工作 1 1 系统 Ubuntu 20 04 3 Desktop Server F
  • TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000+ REAL-WORLD APIS

    本文是LLM系列的文章之一 针对 TOOLLLM FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000 REAL WORLD APIS 的翻译 TOOLLLMs 让大模型掌握16000 的真实
  • 如何使用Mybtis-Plus创建项目???

    1 建立项目 file gt New gt Project 选择Maven项目 2 导入依赖 编写pom xml文件
  • MySQL允许外部访问

    在从外部往MySQL插入数据是 老是失败 才发现是不允许从外部访问 也找了很多方法都没解决 最后才找到这个 一 安装好MySQL 二 开始修改配置 1 登进MySQL之后 2 输入以下语句 进入mysql库 use mysql 3 更新域属

随机推荐

  • VS Code 编辑器: Monaco Editor 介绍

    Any application that can be written in JavaScript will eventually be written in JavaScript 任何可以用 JavaScript 来写的应用 最终都将用
  • res://ieframe.dll/acr_error.htm错误解决办法

    解决方法 删除Internet Explorer 8 的 JSON 互操作性这个补丁 该补丁编号KB976662 首先进入控制面板 添加 删除程序 显示更新 找到编号KB976662 删除
  • hive排序-order by / sort by / distribute by / cluster by

    1 Order By 全局排序 全局排序 只能有一个reduce 1 1 使用 ORDER BY 子句排序 ASC ascend 升序 默认 DESC descend 降序 1 2 ORDER BY 子句在SELECT语句的结尾 1 3 d
  • Python Numpy数组使用列表索引

    用一个例子理解一下 encoding utf 8 author James J time 2019 05 29 import numpy as np if name main data np array 1 2 3 4 5 6 7 8 9
  • Flutter滚动布局嵌套高度自适应和滑动冲突处理

    在SingleChildScrollView中嵌套ListView 如果不指定ListView高度的话会报错 类似这样的 Exception caught by rendering library The following asserti
  • 【ambari】Ambari 环境安装

    1 概述 转载 Ambari 环境安装
  • python怎么换行输入而不执行_python如何换行继续输入

    编写代码时 一行太长写不下该如何换行继续输入呢 一起来看下python如何换行继续输入吧 python如何换行继续输入 python换行继续输入的方法 1 在一行末尾加上 例如 data11 data21 data31 data41 dat
  • java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String

    java lang ClassCastException java lang Integer cannot be cast to java lang String 问题背景 接口中参数为 Map
  • 【华为OD机试】天然蓄水池

    天然蓄水池 题目描述 公元2919年 人类终于发现了一颗宜居星球 X星 现想在X星一片连绵起伏的山脉间建一个天然蓄水库 如何选取水库边界 使蓄水量最大 要求 山脉用正整数数组s表示 每个元素代表山脉的高度 选取山脉上两个点作为蓄水库的边界
  • 40岁高中老师开源的数据集LAION,改变了生成式AI的未来丨智源大会嘉宾风采

    导读 如今 拥有超过50亿个图文对的 LAION数据集已经成为生成式AI未来的中心 而随之而来的关于如何监管人工智能的争论也日益激烈 在德国北部城市汉堡郊区的一栋房屋前 一个信箱上用铅笔潦草地写着一个单词 LAION 这唯一的记号表明 这栋
  • tflite热帖: Tensorflow量化步骤及生成量化的tflite(2)

    https blog csdn net angela 12 article details 85000072 版权声明 本文为博主原创文章 未经博主允许不得转载 https blog csdn net angela 12 article d
  • vue3嵌入pdf的两种办法

    1 使用embed嵌入 好处 简单 代码量少 功能齐全 缺点 有固定样式 难以修改 不可定制 2 使用vue pdf embed pdf预览 的形式定制嵌入pdf 优点 除了pdf的内容别的都可以修改 可以定制样式 缺点 要自己手写下载 下
  • 麦克纳姆轮(Mecanum Wheel)运动学分析

    0 1 麦克纳姆轮底盘示意图 0 2 运动学逆解概念 逆运动学是决定要达成所需要的姿势所要设置的关节可活动对象的参数的过程 一 底盘运动的分解 我们知道 刚体在平面内的运动可以分解为三个独立分量 X轴平动 Y轴平动 yaw 轴自转 如下图所
  • 调用layui相册层---实现点击图片放大查看

    前言 页面排版过程中可能会出现多个小图片并排排列 但对于查看图片内容来说并不十分方便 引入layui js 图片容器 div class photo box div class photograph show div div css样式 宽
  • 【算法】二叉树的递归遍历C语言实现

    二叉树是一种极其重要的数据结构 以下是二叉树的结构定义 创建 和递归先序 中序 后序 遍历的代码 include
  • execjs安装及相关问题解决

    安装方式 命令行下执行 pip install PyExecJS 但出现一个情况是 pycharm编写代码的时候还是出错 这时 我们可以在这个编辑器里再重新安装一下 pycharm安装第三方库 然后查找pyexecjs 然后再安装就行了 这
  • mysql 缓存策略和解决方案

    mysql的主从复制 1 主库Master节点 接受来自客户端的增 删 改请求 通过IO thread写入到binlog 2 从库slave节点 请求读取主库的binlog 通过IO thread写入本地的relay log 中继日志 3
  • 微信公众号跳转到关注页面办法

    span style color rgb 85 85 85 https mp weixin qq com mp profile ext action home biz span span style color ff0000 MzAxNzc
  • java内省

    内省 内省是 Java 语言对 Bean 类属性 事件的一种缺省处理方法 例如类 A 中有属性 name 那我们可以通过 getName setName 来得到其值或者设置新的值 通过 getName setName 来访问name 属性
  • 如何快速查看进程/子线程堆栈

    背景 分析现网问题时 有时需要快速查看某个进程 子线程堆栈调用 便于进一步分析问题 现提供几种不同获取进程堆栈方法 实现方法 1 使用gdb attach 调试进程 使用gdb相关cmd调试进程 gdb p pid 进入gdb后 可通过 g