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

有两种方法:

第一种:pstack 进程ID

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

第三种:strace -f -p pid  该方法和pstack类似

第四中:gcore pid ,输出core文件,gdb cmd corefile

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

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

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

转自:http://blog.csdn.net/jimmyleeee/article/details/4651158

pstack不是一个链接程序,所以不需要其他库的支持,这个是centos5.8 的pstack:pstack.rarcopy过去就可以直接用了。

时间: 2024-10-09 20:35:55

Linux 如何查看一个进程的堆栈的相关文章

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

转自:http://blog.csdn.net/nanjingligong/article/details/8624739 方法一:pstack pidNAME       pstack - print a stack trace of a running process SYNOPSIS       pstack pid DESCRIPTION       pstack  attaches  to  the active process named by the pid on the comm

linux 下查看一个进程运行路径

在linux下查看进程大家都会想到用 ps -ef|grep XXX 可是看到的不是全路径,怎么看全路径呢? 每个进程启动之后在 /proc下面有一个于pid对应的路径 例如:ps -ef|grep python 显示:oracle    4431  4366  0 18:56 pts/2    00:00:00 python Server.py 4431就是进程号 到/proc/4431下,ls -l 会看到(需要root权限): 总用量 0 -r--r--r--    1 oracle  

linux 下查看一个进程执行路径

在linux下查看进程大家都会想到用 ps -ef|grep XXX 但是看到的不是全路径.怎么看全路径呢? 每一个进程启动之后在 /proc以下有一个于pid相应的路径 比如:ps -ef|grep python 显示:oracle ? ?4431 ?4366 ?0 18:56 pts/2 ? ?00:00:00 python Server.py 4431就是进程号 到/proc/4431下.ls -l 会看到(须要root权限): 总用量 0 -r--r--r-- ? ?1 oracle ?

linux下查看一个进程的启动时间和运行时间

使·用 ps命令 :#ps -A -opid,stime,etime,args ps -A -opid,stime,etime,args 结果: root:src# ps -A -opid,stime,etime,args   PID STIME     ELAPSED COMMAND     1 09:21    08:56:14 init [3]                                        2 09:21    08:56:14 [migration/0]

查看一个进程打开的文件都有哪些

step 1 pfile pid step 2 根据 inode number 查找 比如 bash-2.05# pfiles 26053 26053: python Current rlimit: 256 file descriptors 0: S_IFCHR mode:0620 dev:32,0 ino:3982 uid:0 gid:7 rdev:24,2 O_RDWR|O_NOCTTY|O_LARGEFILE 1: S_IFCHR mode:0620 dev:32,0 ino:3982 u

如何在 Linux 中统计一个进程的线程数

编译自:http://ask.xmodulo.com/number-of-threads-process-linux.html作者: Dan Nanni原创:LCTT https://linux.cn/article-6240-1.html译者: strugglingyouth本文地址:https://linux.cn/article-6240-1.html 2015-9-17 10:29    收藏: 5 问题: 我正在运行一个程序,它在运行时会派生出多个线程.我想知道程序在运行时会有多少线程

linux怎么查看一个文件夹的大小

linux查看一个文件夹的大小的命令为: du --max-depth 1 -lh 该文件夹的完整路径 例,查询/var文件夹的大小: du --max-depth 1 -lh /var du 递归查询该路径下所有文件的大小(若不加任何参数,则显示文件夹内的所有文件,包括文件夹内子文件夹的内容). 命令解释: 参数 --max-depth 1 -lh 设置递归深度为1,及不查询子文件夹.因而使用此参数只显示该文件夹的大小,不显示其中子文件夹的大小. 注意: 视操作系统版本不同,命令可能为: du

【linux】查看某个进程PID对应的文件句柄数量,查看某个进程当前使用的文件句柄数量

================================ 1.linux所有句柄查询 lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more 第一列是持有句柄数量,第二列是每个进程的PID 代表各个进程持有的句柄数量 2.查看java或tomcat句柄[查看当前进程持有文件句柄数量][查看当前进程文件句柄最大限制] 2.1查看java程序的PID ps -ef | grep tomcat 2.2查看这个PID持有的句柄数 ls /proc

(转)linux中查看某进程 ps -ef | grep java

ps -ef | grep java   查看所有关于java的进程 root     17540     1  0  2009 ?        01:42:27 /usr/java/jdk1.5.0_15/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m