06 2011 档案

摘要:pstack.sh 改进版本#!/bin/bashif (( $# < 1 )) ; then echo "usage: `basename $0` pid" 1>&2 exit 1fi if [[ ! -r /proc/$1 ]] ; then echo "Process $1 not found." 1>&2 exit 1fi (gdb -quiet -nx /proc/$1/exe -p $1 <<EOFdefine my_dump_all_stackx \$pcbtendthread apply al 阅读全文
posted @ 2011-06-30 18:39 napoleon_liu 阅读(396) 评论(1) 推荐(0)
摘要:#!/bin/bash if (( $# < 1 )) then echo "usage: `basename $0` pid" 1>&2 exit 1 fiif [[ ! -r /proc/$1 ]] then echo "Process $1 not found." 1>&2 exit 1 fibacktrace="bt" if [[ -d /proc/$1/task ]] then if [[ `ls /proc/$1/task 2>/dev/null | wc -l` > 1 ]] 阅读全文
posted @ 2011-06-28 19:52 napoleon_liu 阅读(1052) 评论(1) 推荐(0)
摘要:mtrace 可以用来检查内存泄漏。 它利用__malloc_hook机制,记录每一个内存分配的调用,在利用gcc的__builtin_return_address 获得函数的调用地址, 生成log文件。最后通过 程序中的调试信息和日志文件找出发生内存泄漏的函数。记住程序编译时要带上调试信息,不然只有地址了。利用LD_PRELOAD机制, 我们可以不需要修改程序就可以跟踪内存泄漏的问题。mtrace.so.cpp#include <mcheck.h> #include <stdlib.h> static void init() __attribute__((constr 阅读全文
posted @ 2011-06-02 10:21 napoleon_liu 阅读(991) 评论(0) 推荐(0)