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
阅读全文
摘要:#!/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 ]]
阅读全文
摘要:mtrace 可以用来检查内存泄漏。 它利用__malloc_hook机制,记录每一个内存分配的调用,在利用gcc的__builtin_return_address 获得函数的调用地址, 生成log文件。最后通过 程序中的调试信息和日志文件找出发生内存泄漏的函数。记住程序编译时要带上调试信息,不然只有地址了。利用LD_PRELOAD机制, 我们可以不需要修改程序就可以跟踪内存泄漏的问题。mtrace.so.cpp#include <mcheck.h> #include <stdlib.h> static void init() __attribute__((constr
阅读全文

浙公网安备 33010602011771号