Linux 如何查看一个进程的堆栈

本文介绍了使用pstack和gstack工具查看Linux进程中所有线程的调用栈的方法。pstack简单快速,适合仅查看调用栈;gstack提供更多细节,如局部变量和指针信息。适用于解决死锁和调试复杂问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.用pstack

第一种:pstack 进程ID

第二种,使用gdb 然后attach 进程ID,然后再使用命令 thread apply all bt

两种方法都可以列出进程所有的线程的当前的调用栈。

不过,使用gdb的方法,还可以查看某些信息,例如局部变量,指针等。

不过,如果只看调用栈的话,pstack还是很方便的。

https://www.ibm.com/developerworks/cn/linux/l-cn-deadlock/

2.用gstack

gstack -打印正在运行的进程的堆栈跟踪

使用方法:

gstack PID

描述

gstack连接到命令行中pid的活动进程

打印执行堆栈跟踪。如果ELF符号存在于二进制(usu -)中

如果你没有运行条带(1),那么这个例子就会被打印出来

同样如此。

如果进程是线程组的一部分,那么gstack将打印出一个堆栈

对组中的每个线程进行跟踪。

转载连接:http://yizhanggou.top/linux--e5-a6-82-e4-bd-95-e6-9f-a5-e7-9c-8b-e4-b8-80-e4-b8-aa-e8-bf-9b-e7-a8-8b-e7-9a-84-e5-a0-86-e6-a0-88/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值