Wie kann ich Absturzberichte / Core-Dumps / Stack-Trace-Protokollierung global aktivieren?

9

Absturzfehler können die ärgerlichsten sein und zu Datenverlust, Ausfallzeiten und frustrierten Benutzern führen. Es wäre gut, wenn Anwendungen weniger abstürzen würden.

Aufgrund der Komplexität des Maschinenkontexts können Abstürze für einen normalen Benutzer häufig nicht in angemessener Zeit reproduziert werden. Das bedeutet nicht, dass der Fehler selten ist - es könnte einfach bedeuten, dass das, was ihn auslöst, selten für jeden Benutzer auftritt (zum Beispiel Änderungen der Sommerzeit). Es ist unwahrscheinlich, dass solche Fehler behoben werden, es sei denn, viele Benutzer melden sie. Es wäre gut, wenn mehr Abstürze gemeldet würden.

Um Abstürze zu debuggen, benötigen die Entwickler so viel eindeutigen Kontext wie möglich. Generierte Absturzberichte sind gut , da sie normalerweise detailliert und genau sind. Von Benutzern kann nicht erwartet werden, dass sie den gesamten Kontext eifrig manuell beobachten und melden. Daher übermitteln sie häufig spärliche und falsche Informationen.

Die Zielgruppe für viele Anwendungen sind nicht Entwickler oder Systemadministratoren, sondern die breite Öffentlichkeit zu Hause oder bei der Arbeit. Von solchen Benutzern kann nicht erwartet werden, dass sie wissen, wie man Absturzinformationen manuell sammelt oder -dbgPakete installiert , aber generierte Berichte von solchen Benutzern können weiterhin verwendet werden. Einige Anwendungen haben ihre eigenen Crash-Reporting-Tools , aber meiner Erfahrung nach funktionieren diese selten , und wenn sie melden, dass sie den Fehler nicht gemeldet haben, scheint es keine Informationen darüber zu geben, wie dies manuell zu tun ist (ich habe dies für beobachtet aktuelle Versionen von Firefox und Flash). Eine systemweite Erstellung von Absturzberichten wäre gut.

Gibt es irgendeine Art von Crash-Report-Generierung *, die global aktiviert werden kann **, ohne eine Menge -dbgPakete zu installieren , die Dokumentation jeder einzelnen Anwendung zu lesen oder einen normalen Computer auf ein Crawling zu verlangsamen?

* Protokolle, Core Dumps, Stack Traces, was auch immer

** Nicht unbedingt für init, aber zumindest für einen wesentlichen Teil der Anwendungen, die auf einer typischen Desktop-Linux-Installation ausgeführt werden. Nach meiner Erfahrung stürzen GUI-Anwendungen mehr als 100 Mal häufiger ab als Shell-Anwendungen, sodass GUI-Anwendungen natürlich im Mittelpunkt stehen würden.

l0b0
quelle
Was würden Sie mit all diesen Kerndateien tun (ja, Sie können Core-Dumps global aktivieren, Apps können sie jedoch einzeln deaktivieren)? Wie unterrichten Sie Benutzer darüber, was sie mit ihnen tun sollen, wie sie aufgeräumt werden sollen?
Mat
1
Senden Sie sie an die Entwickler. Zumindest die meisten von ihnen sollten mit E-Mail-Anhängen vertraut sein.
10b0
1
Was ist mit Sicherheitsproblemen? Core Dumps können voller persönlicher Informationen sein. Es tut mir leid, aber ich habe in Ihren Vorschlägen nichts allgemein Praktisches gesehen.
Mat
Absturzberichte und Stapelspuren sollten hingegen keine persönlichen Informationen enthalten. Selbst diese sollten ausreichen, um viele Anwendungen zu debuggen, wenn sie nur standardmäßig generiert und leicht zu finden sind.
10b0
1
Stapelspuren sind ohne das Debuggen von Informationen (oder zumindest exakten Binärversionen, die dazu gehören) nicht allzu nützlich. "Crash Report" ist ein Konzept auf Anwendungsebene, das Sie nicht "global aktivieren" können (obwohl einige Frameworks sie bereitstellen und die großen (z. B. KDE) bereits automatische "Send to Dev Team" -Funktionen haben).
Mat

Antworten:

1

Ubuntu hat Apport nur dafür.

sendmoreinfo
quelle