Linux环境下通过gstack命令查看进程的运行堆栈信息

本文介绍了gstack命令的使用方法及功能。gstack可以打印出指定进程的执行堆栈跟踪信息,如果存在ELF符号,则同时显示符号地址。当目标进程包含多个线程时,gstack会为每个线程生成堆栈跟踪。

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

gstack命令的说明如下:

NAME
       gstack - print a stack trace of a running process

SYNOPSIS
       gstack pid

DESCRIPTION
       gstack  attaches  to the active process named by the pid on the command
       line, and prints out an execution stack trace.  If ELF symbols exist in
       the  binary  (usually the case unless you have run strip(1)), then sym‐
       bolic addresses are printed as well.

       If the process is part of a thread group, then gstack will print out  a
       stack trace for each of the threads in the group.

它的用法很简单,只要在gstack命令后面跟上某个进程pid就可以,例如查询一个newthread进程的运行堆栈信息:

gstack `pgrep newthread | head -1`

[yuanping@Linux ~]$ gstack `pgrep newthread | head -1`
Thread 2 (Thread 0xb77d7b40 (LWP 4165)):
#0  0x00e13424 in __kernel_vsyscall ()
#1  0x4ebf79c6 in nanosleep () from /lib/libc.so.6
#2  0x4ebf77df in sleep () from /lib/libc.so.6
#3  0x0804853a in thread ()
#4  0x4ed27cd3 in start_thread () from /lib/libpthread.so.0
#5  0x4ec324de in clone () from /lib/libc.so.6
Thread 1 (Thread 0xb77d8900 (LWP 4164)):
#0  0x00e13424 in __kernel_vsyscall ()
#1  0x4ed28dd5 in pthread_join () from /lib/libpthread.so.0
#2  0x080485bd in main ()
[yuanping@Linux ~]$ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值