Hi experts,
I want to enhance the capability of our application to report the problem when something wrong happen. So far, we use exceptions, capture them as soon as possible (but not sooner than necessary) and write the related info into a proprietary log file. It works fine and saved a lot of problems for us. However, when something happens in the very frequently used part of the application, we feel we need more information from where the code was called, etc.
Digging around, I have found the notion of minidump (the Microsoft implementation; I am very new to it). To understand it better, I was searching for some bare-bone example that shows the use. So far I have found the following tiny example
http://www.clausbrod.de/cgi-bin/view.pl/Blog/DefinePrivatePublic200706#DefinePrivatePublic20070627_Thinand some not so brief examples. (I did not try all the related things like building the applications with full .pdb file and off-line (post mortem) debugging -- just have some basic understanding.)
However, the examples show how to solve the situation when the exceptions are not captured at all -- based on usage of the
SetUnhandledExceptionFilte
r(myFilter
Function);
that gets _EXCEPTION_POINTERS *exc_ptr from the kernel (or whatever) and this is passed to the MiniDumpWriteDump() function.
I would like to do the same when I catch a standard C++ exception. How to get the _EXCEPTION_POINTERS for the standard exception? Am I walking the correct path to the solution? Is it possible to use such minidump (with the .pdb file) for discovering where the problem happened (like the call stack, etc.)? Some working examples, tutorials?
Thanks for any info,
Petr
Start Free Trial