c++ - 使用 google breakpad 注册异常处理程序时出现总线错误

标签 c++ linux google-breakpad

我正尝试在我的应用程序中使用 google breakpad。但是我在这样做时遇到了总线错误。

示例应用程序:

#include<iostream>
using namespace std;

#include "client/linux/handler/exception_handler.h"
static bool breakpadDumpCallback(const google_breakpad::MinidumpDescriptor& descriptor, void* context, bool succeeded)
{
    return succeeded;
}


int main()
{
    cout << "Hello World! \n";

    //Adding changes for google breakpad
    static google_breakpad::ExceptionHandler* excHandler = NULL;
    cout << "Here-----------! \n";

    // delete excHandler;

    excHandler = new google_breakpad::ExceptionHandler(google_breakpad::MinidumpDescriptor("/opt/minidumps/"), NULL, breakpadDumpCallback, NULL, true, -1);

    cout << "Registered Google Breakpad exceptionHandler\n";

    int *x = NULL;
    *x = 10;

    return 0;
}

我从以下行收到错误:

excHandler = new google_breakpad::ExceptionHandler(google_breakpad::MinidumpDescriptor("/opt/minidumps/"), NULL, breakpadDumpCallback, NULL, true, -1);

输出:

Hello World!
Here-----------!
Bus error (core dumped)

我做错了什么吗?

最佳答案

请试试这个

google_breakpad::MinidumpDescriptor(std::string("/opt/minidumps/"))

如果仍然不起作用,请尝试使您的代码(完全)尽可能匹配现有的工作示例: http://fossies.org/linux/seafile-client/src/crash-handler.cpp

关于c++ - 使用 google breakpad 注册异常处理程序时出现总线错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37584434/

相关文章:

linux - 是否可以在没有 TTY 的情况下自动刷新 STDOUT/STDERR?

java - 如何停止 WSO2 ESB 4.0.3

minidump - Breakpad 不会在删除迭代器上生成小型转储两次

c++ - 适用于容器每个成员的 STL 函数是否可以接受外部参数?

c++ - 段错误,C++,g++,

c++ - C++中如何解析 `auto a(b);`?

c++ - memset 在这段代码中是如何工作的?

linux - 在 Linux 上安装 F5 负载均衡器

c++ - arm-linux-androideabi STL编译报错

c - Linux 上的 Breakpad 测试示例错误