Aim is to better reproduce application crashes by means of generated minidumps / stack traces in the event of an application crash.
- Generate a breakpad exception handler
- Initiate an out-of-process exception server that dumps the stackt race
Aim is to better reproduce application crashes by means of generated minidumps / stack traces in the event of an application crash.
First working, windows only prototype implementation pushed:
http://mitk.org/git/?p=MITK.git;a=commit;h=bbe61ec8222aa990d64d6ed7ab860c6fd1811d8b
OutOfProcess dump does not permanently use a separate process, but only temporarily.
Current implementation totally relies on the sample crash_generation_server project.
To reproduce:
0. Have breakpad built with vs2008 and /MD runtime linkage (in source build).
To load a dump file:
OutOfProcess dump does not permanently use a separate process, but only temporarily.
not sure about that anymore.
completed implementation and documentation.
See mitkBreakpadCrashReporting.h for documentation.
Currently known issues:
Waiting for feedback before merging.
Just saw this bug closed. Until it is merged I suggest leaving it open so people find it and its status is reflected properly.
By now I put quite some effort into integrating this in a more MITK like fashion. Before I proceed, I'd like to get some feedback by Sascha.
In branch personal/maleike/breakpad, I now succeeded in:
Now I could imagine some locations where we could initialize the crash-dump-server:
What would be the best way to proceed?
After talking with Daniel, we decided to rebase the existing commits based on the 2012.12 release.
Since the commits for the Breakpad module were contained in branches which were not based on the release tag and also contained other merges, I had to cherry-pick a few and rebase the recent ones.
I am not sure if the MINT branches containing any of the Breakpad commits are supposed to be merge back to MITK master any time. If they are, we will have to look out for merge issues with the newly created branch.
The newly created branch (see comment above) contains only the Breakpad commits and is based on the v2012.12.0 tag.
TODOS:
This bug could not be fixed for release 2013-06. Setting target milestone to next release
(In reply to Sascha Zelzer from comment #9)
TODOS:
- Remove Qt dependency from the module
Done.
- Create a source tarball instead of pulling from SVN
Tarball needs to be uploaded.
- Build the module statically
Done.
- Use MITK_INSTALL macro for the crash server and test packaging
Done.
- Integrate it into the mitkWorkbench
Done.
Open ToDos are:
Linking CXX executable minidump_stackwalk
libprocessor.a(stackwalker.cc.o): In function `google_breakpad::Stackwalker::StackwalkerForCPU(google_breakpad::SystemInfo const*, google_breakpad::MinidumpContext*, google_breakpad::MemoryRegion*, google_breakpad::CodeModules const*, google_breakpad::StackFrameSymbolizer*)':
stackwalker.cc:(.text+0xa74): undefined reference to `google_breakpad::StackwalkerPPC64::StackwalkerPPC64(google_breakpad::SystemInfo const*, MDRawContextPPC64 const*, google_breakpad::MemoryRegion*, google_breakpad::CodeModules const*, google_breakpad::StackFrameSymbolizer*)'
collect2: error: ld returned 1 exit status