您的位置:首页 > 运维架构 > Shell

pstack shell脚本

2015-05-21 10:11 736 查看

pstack查看进程堆栈信息,比较有用,记录下来

#!/bin/bash
if (( $# < 1 ))
then
echo "usage: `basename $0` pid" 1>&2
exit 1
fi

if [[ ! -r /proc/$1 ]]
then
echo "Process $1 not found." 1>&2
exit 1
fi

backtrace="bt"
if [[ -d /proc/$1/task ]]
then
if [[ `ls /proc/$1/task 2>/dev/null | wc -l` > 1 ]]
then
backtrace="thread apply all bt"
fi  ;
elif [[ -f /proc/$1/maps ]]
then
if grep -e libpthread /proc/$1/maps > /dev/null 2>&1
then
backtrace="thread apply all bt"
fi
fi

GDB=gdb

$GDB -quiet -nx /proc/$1/exe -p $1 <<<"$backtrace" |
sed -n  \
-e 's/^(gdb) //' \
-e '/^#/p' \
-e '/^Thread/p'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell