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

在分析现网问题时,迅速获取进程或子线程的堆栈调用信息至关重要。本文介绍了五种不同的方法,包括使用gdb attach调试,通过pstack/gstack,利用gcore输出coredump,使用strace以及查看proc文件的stack,为运维人员提供灵活的选择。
订阅专栏 解锁全文

4647

被折叠的 条评论
为什么被折叠?



