Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What to: Collect Information When Software Crashes

Tags:

.net

crash

I notice that a lot of desktop apps ( such as Firefox, Google Chrome, VS 2008 etc) have a crash dump that can be sent to the software vendors for analysis purpose. I am intended to create such a crash dump myself. I am doing .Net

What are the best practices when comes to what data to collect, so that the data collected is just enough to reproduce and fix the bugs, but nothing more?

like image 210
Graviton Avatar asked Dec 29 '22 18:12

Graviton


2 Answers

I collect exception name, stack trace and ask customer what he was doing at time of crash. Usually that is enough.

Additionally, you can establish account with Microsoft to get debugging data of your application crashes with their Windows Error Reporting.

like image 193
Josip Medved Avatar answered Jan 13 '23 20:01

Josip Medved


I built a logging system that reports directly into my bug database, and it reports the following information:

  • Non-identifiable information about the computer and runtime environment (like windows version, some regionale settings, amount of memory, cpu-type, etc.)
  • Stack-trace and information about the exception itself
  • Loaded assemblies, version numbers
  • Loaded dll's that aren't assemblies (you newer know when a dll injected by Skype to handle hot-key invocation might mess up your own program)

A form pops up first where the user can review everything that is to be sent, and can optionally identify him/herself + write a description what he/she was doing when the problem occured. If an email is provided, the user will get an email back to track the bug report with.

You should strive to make the process of logging as non-intrusive as possible, and detailed enough that you can at least determine where to start looking.

I'm currently building a logging system that can be enabled for users that experience the same problem multiple times, where the last N items of the log can be attached to the bug report, which contains things like code flow (method calls, returns, exceptions, etc.).

like image 21
Lasse V. Karlsen Avatar answered Jan 13 '23 20:01

Lasse V. Karlsen