6

I'm using google-breakpad. This is a bug reporting program that runs in the background to report another process's crashs.

It works in almost every situation.

However it occasionally fails to catch a crash. There's no report and no dump file. It just crashes. The last clue for the crash is a windows event message.

How can I debug these crashes? What would cause Breakpad to not handle the crash? What methods can I use to debug the situation?

Thomas Weller
  • 55,411
  • 20
  • 125
  • 222
Hybrid
  • 261
  • 4
  • 10
  • Could these be SEH exceptions? Are they things like stack overflows or access violations? – Doug T. Jul 05 '12 at 19:01
  • I guess it might be related to stack overflows. Breakpad have been catching access violations well. – Hybrid Jul 05 '12 at 19:17
  • 1
    Breakpad says it uses SetUnhandledExceptionFilter() function(windows). I'm not sure callback function for SetUnhandledExceptionFilter is even called or not before process terminated in this situation. – Hybrid Jul 05 '12 at 19:31
  • I think not. I'm not sure though.. – Hybrid Jul 06 '12 at 01:12

1 Answers1

10

The Visual C++ C/C++ runtime library will remove the hook set with SetUnhandledExceptionFilter in certain circumstances; for example, when it detects a buffer overflow or other security problem.

This Microsoft feedback page lists how to stop this behavior for most of the cases, but states that it's not possible for the buffer overflow case without introducing security problems.

Baffe Boyois
  • 2,120
  • 15
  • 15
  • I am unable to see that Microsoft feedback page - is there a new link or something I can look at? – Lynden Shields Jan 13 '14 at 05:03
  • 4
    The page seems to have gone 404. I don't remember exactly what whas on it, but try the MSDN documentation for _set_abort_behavior and _set_invalid_parameter_handler. – Baffe Boyois Jan 14 '14 at 23:38