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

有两种方法:

第一种:
$pstack   进程ID 或者  $gstack   进程ID

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

第二种:先执行程序,然后 $gdb attach进程ID,再执行$thread    apply all bt

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

 

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

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

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

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

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