2016-06-02 5 views
1

Ich versuche, Google breakpad mit meiner Anwendung zu verwenden. Aber ich bekomme dabei einen Fehler.Busfehler beim Registrieren des Ausnahmebehandlers mit Google breakpad

Anwendungsbeispiel:

#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; 
} 

Ich erhalte Fehler von unten Leitung:

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

Ausgang:

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

Mache ich etwas falsch?

Antwort

0

Statische Bibliothek (libbreakpad_client. a) was ich benutzte war ein inkompatibles. Deshalb zeigt es Busfehler an. Ich habe es durch ein anderes ersetzt und es funktioniert wie erwartet.

0

Bitte versuchen Sie diesen

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

Wenn es immer noch nicht funktioniert, versuchen Sie, Ihren Code zu machen (genau) so weit wie möglich ein bestehendes Arbeitsbeispiel entsprechen: http://fossies.org/linux/seafile-client/src/crash-handler.cpp