pstack.sh 改进版】的更多相关文章

pstack.sh 改进版本 #!/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 (gdb -quiet -nx /proc/$1/exe -p $1 <<EOF…
#!/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 ]]…
#!/bin/bash #功能:让GBK编码的文件可以使用less正常显示中文(自动识别GBK和UTF-8编码) #v0. 在LINUX下,使用UTF-8编码,less UTF-8的文件时显示中文正常,而less GBK的文件时将显示乱码, #本脚本使用enca识别编码(enca识别编码的能力较弱,经常会有不识别的情况,对于这种情况,认为是GBK文件),如果是UTF-8编码, #直接显示:如果是GBK编码,先转换成UTF-8编码,再显示. #v0. 增加对标准输入重定向的支持 #@todo 怎么…
引言 有时我们需要对程序进行优化.减少程序响应时间.除了一段段地对代码进行时间复杂度分析,我们还有更便捷的方法吗? 若能直接找到影响程序运行时间的函数调用,再有针对地对相关函数进行代码分析和优化,那相比漫无目的地看代码,效率就高多了. 将strace和pstack工具结合起来使用,就可以达到以上目的.strace跟踪程序使用的底层系统调用,可输出系统调用被执行的时间点以及各个调用耗时:pstack工具对指定PID的进程输出函数调用栈. 下面我们通过一个简单的消息收发程序,说明使用strace.p…
pstack.sh: #! /bin/sh if [ -z $1 ] then echo "gdb script for print stack" echo "usage: $0 pid" exit fi gdb --batch --quiet -x cmds -p $1 cmds: echo /nProcess:/n info proc echo /nStack: thread apply all backtrace detach quit…
掌握 Linux 调试技术 在 Linux 上找出并解决程序错误的主要方法 Steve Best (sbest@us.ibm.com)JFS 核心小组成员,IBM 简介: 您可以用各种方法来监控运行着的用户空间程序:可以为其运行调试器并单步调试该程序,添加打印语句,或者添加工具来分析程序.本文描述了几种可以用来调试在 Linux 上运行的程序的方法.我们将回顾四种调试问题的情况,这些问题包括段错误,内存溢出和泄漏,还有挂起. 本文讨论了四种调试 Linux 程序的情况.在第 1 种情况中,我们使…
对于性能问题或者一些比较奇怪妖异的问题,有很多点可以着手去分析. 准备写一个系列关于用ash/dba_hist_active_sess_history,用oradebug,用linux命令strace,pstack或者用等等等等工具~~来归纳下一些思路,就是当目前为止所有分析的结果都没任何头绪的时候,接下来如何进行深入的troubleshooting. 比如当一个sql执行的很慢的时候,看看sql历史等待事件,看sql执行计划,但要是没什么特别明显的等待,或者执行计划看上去可以,感觉这个sql应…
Tomcat重启脚本restart.sh停止脚本stop.sh Tomcat本身提供了 startup.sh(启动)shutdown.sh(关闭)脚本,我们在部署中经常会出现死进程形象,无法杀掉进程需要查询进程号kill掉才能正常启动.通过restart.sh脚本来解决这个问题比较好.2.脚本注意:一台服务器如果运行多个tomcat实例,不要配环境变量,容易启动错误,除了端口变换外,restart.sh脚本#{tomcat目录}命名要区别,不然kill掉所有tomcat进程TOMCAT_PATH…
pstack竟然是一个shell脚本,核心是调用gdb的thread apply all bt查看进程的所有线程的堆栈,之后用sed正则展示线程堆栈信息. /proc/pid/exe是一个指向可执行文件的软连接. #!/bin/sh if test $# -ne 1; then     echo "Usage: `basename $0 .sh` <process-id>" 1>&2     exit 1 fi if test ! -r /proc/$1; t…
#!/bin/sh year=`date +%Y` month=`date +%m` day=`date +%d` hour=`date +%H` dir="/data/dbbackup/file" #备份路径 #db数据备份 db_sqlname="db_bk.sql" #备份成的文件名 db_sqlnamelog="db_bklog.sql" #备份成的文件名 db_host="127.0.0.1" #数据库主机 db_u…