2009-09-02 7 views
15

Ich bin auf der Suche nach einem plattformübergreifenden Crash-Handler. Google Breakpad sieht vielversprechend aus, aber es fehlt sehr an Dokumentation, und es erfordert eine angemessene Menge an Fiedeln, um tatsächlich loszulegen.Cross-Plattform-Crash-Handler

Was ist eine bessere Alternative?

Alles, was ich brauche, ist die Fähigkeit, Crash-Dumps, Stack-Traces und CPU-Informationen zum Zeitpunkt eines Absturzes zuverlässig zu speichern. Oder wie sieht es mit Google Breakpad aus? War es großartig oder schrecklich?

+0

Wie Cross-Plattform sollte das sein? gdb + coredump funktioniert gut auf x86, arm, ppc, ... benötigt aber die gcc toolchain. – stefaanv

Antwort

7

Nun, es stellt sich heraus, dass Google-Breakpad ist doch ziemlich nett. Es ist nicht ganz einfach einzurichten, aber es ist OK für das, was ich brauche.

+0

Hallo, ich kann nicht herausfinden, wie man es baut. Jede Hilfe wäre willkommen - http://stackoverflow.com/questions/2925094/how-to-build-google-breakpad – Steve

+0

Die Dokumentation ist nicht großartig, ich gebe es zu. Ich habe versucht, das zu verbessern, und ich denke, es ist jetzt ein wenig besser, siehe: http://code.google.com/p/google-breakpad/wiki/GettingStartedWithBreakpad Es ist eine wirklich nützliche Bibliothek und Versand mit viele Produktionssoftware, so macht es den Job ganz gut. –

6

Ich habe vor einigen Jahren einen Artikel über Dumping des Stacks in C/C++ mit Windows und Unix/Linux bei DDJ geschrieben. Es verwendet keinen Arbeitsspeicherabzug, sondern schreibt Stack-Frames in eine Protokolldatei, bei internen Fehlern oder wenn das Betriebssystem einen Anwendungsfehler feststellt.

hilft es Ihnen vielleicht:

Siehe http://www.ddj.com/architect/185300443

+0

Ich weiß, dass es alt ist, aber ich kann Unix/Linux-Version in dem Artikel nicht sehen. Gibt es irgendeine Art von Follow-up irgendwo? – yatsa

+0

Uh, ich sehe es jetzt (es gibt Quellcodes mit POSIX-kompatiblem Beispiel) – yatsa

3

Für kompilierte Code gibt es zwei gute Möglichkeiten - core dumps unter UNIX-Varianten und Dr. Watson Crash logs/unter Windows Dumps. Ich weiß, dass dies keine plattformübergreifende Lösung ist, aber wenn Sie nur mit zwei Plattformen zu tun haben, dann ist zwei Lösungen nicht wirklich so schlecht von einer Sache.

Natürlich erfassen die Lösungen nur ein Kernbild zum Zeitpunkt des Absturzes und nicht den Zustand der Maschine. Ich weiß nichts, was IO- und CPU-Last zum Zeitpunkt eines Anwendungsabsturzes erfasst. Vielleicht möchten Sie in die Mozilla Crash Reporter, die seltsamerweise auch als "Breakpad" ... Zufall?

+1

nein, es ist kein Zufall - mozilla benutzt google breakpad als crash-handler. – Thomi