Eigener error reporting dialog

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Gelöschter Benutzer
Beiträge: 92
Registriert: 26.02.2009, 22:09

Eigener error reporting dialog

Beitrag von Gelöschter Benutzer »

Hallo Leute,

ich weiß das es jeder kennt: "Senden" oder "Nicht senden.". Leider bieten diese Dialoge kaum praktische Informationen was eigentlich tatsächlich schief geht zur Runtime.

Jetzt wollte ich doch fragen, ob es die Möglichkeit gibt einen eigenen Dialog einzuführen. Wenn ja, wie? Google liefert via error report dialog nur Müll. C++ und WinAPI versteht sich.

Vielen Dank vorraus!
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 596
Registriert: 05.07.2003, 11:17

Re: Eigener error reporting dialog

Beitrag von Lord Delvin »

Öhm falls ich das jetzt richtig verstehe, dass du das für deine eigenen Erzeugnisse besser machen willst, als der Standard Windows Absturzbericht, dann folgendes:

Es lohnt sich nur, wenn dein Programm überhaupt in der Lage ist dir sinnvolle Informationen zu senden.

Wenn du willst, dass user dir sowas schicken solltest du zwei Dinge tun:

1. Du musst ihnen zeigen, was genau du da verschicken willst, sonst wird kaum jemand was weiterschicken.
2. Du musst ihnen erlauben dir die Sachen auch ohne irgendwelche Accounts zu schicken(das ärgert mich immer bei OpenSource Leuten...will man denen n Bugreport schreiben, dann muss man sich meistens irgendwo anmelden und ich hab ehrlich gesagt keine lust bei jedem projekt n benutzer und passwort zu haben, das kann ich mir sowieso nicht merken) Wenn dich jemand zuspammen will, dann macht der das auch so. Captcha is imho in Ordnung.

Du solltest darauf achten, dass deine Errorlogs nicht zu groß sind. Die meisten Leute können einfach nicht ma schnell 1+MB error log verschicken.

Für die Implementierung musst du mal schaun obs was besseres gibt als ein try block um den Inhalt von main.

Ich denk aber, dass es in den meisten Fällen reicht errorlogs mit datum versehen in einem Ordner zu speichern und wenn sich jemand meldet, einfach den Inhalt des Ordners anzufordern. Das sollte eignetlich einfach sein. Ich hab bis jetzt immer alles nach log/ geschrieben. Das is übersichtlich, leicht zu implementieren und ich denke das Benutzerfreundlichste, vor allem wenn du selbst noch am Entwickeln bist.

Gruß
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
dowhilefor
Moderator
Beiträge: 173
Registriert: 27.02.2009, 15:44
Alter Benutzername: 6SidedDice
Echter Name: Nico Probst
Wohnort: Bochum
Kontaktdaten:

Re: Eigener error reporting dialog

Beitrag von dowhilefor »

Schau dir das mal an, dürfte genau das sein was du da machen möchtest.
Imo sollte sowas immer nur an eine Email per sendto geschickt werden, ist für den Benutzer imo das transparenteste, da er sich immernoch das Attachment ansehen kann.
Ein Callstack Dump ist nur leider nicht ohne weiteres lesbar, deswegen ist es schwierig dem Benutzer zu erklären das man nix böses verschickt. Imo sollte sowas eh nur in Testversionen eingebaut werden die an Leute geht, die Wissen worum es geht. Den Endkunden mit sowas zu belästigen fand ich schon immer Schwachsinn. Ich kenne _KEINEN_ Endkunden der eine anständige Fehlerbeschreibung abgeben könnte.
Mein Gehirn besteht nur noch aus einem hash-index, ich weiss was ich kenn aber kenn nicht was ich weiss
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Eigener error reporting dialog

Beitrag von Aramis »

Für manche Fehler kannst du den Fehlerhandler der Laufzeitumgebung überschreiben, z.B. für Aufrufe nicht implementierter pure virtuals.

Um Callstacks zu generieren gibt es verschiedene Toolsets (z.B. Stackwalker). Die sind aber nur dann aussagekräftig wenn du Debugsymbole mitlieferst, was auußerhab von Betatests wohl eher nicht der Fall sein wird.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Eigener error reporting dialog

Beitrag von kimmi »

Na ja, man kann durchaus auch für Releases PDBs mitliefern. In meinen Job machen wir das beispielsweise immer. Das hängt halt von den Anforderungen ab.

Allerdings muß man bei der Erstellung eigener CrashHandler bzw. StackWalker Vorsicht walten lassen. Ich stecke Crashhandler prinzipiell in eine eigene Dll und rufe in diesem auch nur Funktionalitäten aus der CrachHandler-Dll, da man ansonsten sich schnell einen Deadlock einbaut ( Andere Dll crasht, ruft CrahHandler-Dll-Funktionalität, die ruft unbedachterweise Funktionalität aus der fehlerhaften Dll auf -> Deadlock -> nix mit Fehlerreport ).

Gruß Kimmi
Antworten