1. 去下载
当前最新版本为 1.2.1 。
项目链接: http://code.google.com/p/google-coredumper/
2. 安装
./configure 、 make 、 make install 。
或者用dep包
dpkg -i libcoredumper1_1.2.1-1_i386.deb
sudo dpkg -i libcoredumper-dev_1.2.1-1_i386.deb
3. 测试demo
#include <stdio.h>
#include <setjmp.h>
#include <signal.h>
#include <google/coredumper.h>
jmp_buf env;
void sig_func(int signo)
{
printf("segment falut: caught signal: %d/n",signo);
if( WriteCoreDump("coredump.txt") ==0 ) {
printf("success: WriteCoreDump to coredump.txt/n");
} else {
printf("failure: WriteCoreDump to coredump.txt/n");
}
}
void do_something()
{
printf("do_something!/n");
}
void MakeSignal()
{
char *q;
q = 0;
q[2] = 'b';
}
int main()
{
signal(SIGSEGV, &sig_func);
signal(SIGTERM, &sig_func);
signal(SIGINT, &sig_func);
MakeSignal();
return 0;
}
gcc -o GCoredumperTest -lcoredumper googlecoredumper.c
运行程序
./GCoredumperTest
gdb GCoreDumperTest coredump.txt
4. 多线程方式的支持
代码如下:
允许步骤和输出: