2016-06-02 2 views
1

Я пытаюсь использовать брейд-панель google с моим приложением. Но я получаю автобус, делая это.Ошибка шины при регистрации обработчика исключений с помощью 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) 

ли я делаю что-то неправильно?

ответ

0

Статическая библиотека (libbreakpad_client. a), который я использовал, был несовместимым. Вот почему он показывает ошибку шины. Я заменил его другим, и он работает как ожидалось.

0

Пожалуйста, попробуйте этот

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

Если он все еще не работает, попробуйте сделать свой код (точно) соответствуют существующему рабочий пример как можно больше: http://fossies.org/linux/seafile-client/src/crash-handler.cpp

Смежные вопросы