我正尝试在我的应用程序中使用 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/