Google breakpad for Linux step by step

本文详细介绍了如何使用Google Breakpad在Linux环境下创建和解析故障转储文件。从构建Breakpad组件到生成及解析mini dump文件,涵盖了整个流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Google breakpad for Linux step by step
======================================

$ ( cd google-breakpad; ./configure; make; )
$ ( cd google-breakpad/src/tools/linux/dump_syms/; make; )
  # remove "-m32" in dump_syms/Makefile if on 64-bit OS
$ ( cd google-breakpad/src/tools/linux/md2core/;
    g++ -I http://www.cnblogs.com/../ -o md2core minidump-2-core.cc; )

$ cat test.cpp
#include <iostream>
#include "client/linux/handler/exception_handler.h"


static bool dumpCallback(const char* dump_path,
                         const char* minidump_id,
                         void* context,
                         bool succeeded)
{
    std::cerr << "Minidump file created: " << dump_path << "/" << minidump_id << ".dmp\n";
    return succeeded;
}

void hello()
{
    int a = 2/0;
}

int main(int argc, char* argv[])
{
    google_breakpad::ExceptionHandler eh(".", NULL, dumpCallback, NULL, true);

    hello();

    return 0;
}

$ g++ -g -I google-breakpad/src -o test test.cpp google-breakpad/src/client/linux/libbreakpad_client.a
$ ./test

    $ google-breakpad/src/tools/linux/md2core/md2core ./test > core
    $ gdb ./test core
    (gdb) bt

    or

    $ google-breakpad/src/tools/linux/dump_syms/dump_syms ./test | head -1
    MODULE Linux x86_64 6EDC6ACDB282125843FD59DA9C81BD830 test
    $ mkdir -p ./symbols/test/6EDC6ACDB282125843FD59DA9C81BD830
    $ google-breakpad/src/tools/linux/dump_syms/dump_syms ./test > symbols/test/6EDC6ACDB282125843FD59DA9C81BD830/test.sym
    $ google-breakpad/src/processor/minidump_stackwalk ./328eaddc-c1d5-9eee-3ca1e6a4-0ce3f6a6.dmp symbols

    or (see http://groups.google.com/group/google-breakpad-discuss/browse_thread/thread/153ba641904d95ec )

    $ wget -O symbolstore.py http://mxr.mozilla.org/mozilla-central/source/toolkit/crashreporter/tools/symbolstore.py?raw=1
    $ python ./symbolstore.py google-breakpad/src/tools/linux/dump_syms/dump_syms ./symbols ./test
    $ google-breakpad/src/processor/minidump_stackwalk ./328eaddc-c1d5-9eee-3ca1e6a4-0ce3f6a6.dmp symbols


Also reference:
http://mxr.mozilla.org/mozilla-central/source/toolkit/crashreporter/

转载于:https://www.cnblogs.com/runner42/archive/2013/03/30/2991015.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值