Open Bug 610380 Opened 14 years ago Updated 5 years ago

Expose exception information parameters

Categories

(Socorro :: General, enhancement, P3)

x86
Windows 7
enhancement

Tracking

(Not tracked)

People

(Reporter: jrmuizel, Unassigned)

References

Details

The exceptions recorded in minidumps contain some exception parameters that we're not exposing in Socorro.

Running minidump_dump on a minidump gives:

MDException
  thread_id                                  = 0x910
  exception_record.exception_code            = 0x879
  exception_record.exception_flags           = 0x0
  exception_record.exception_record          = 0x0
  exception_record.exception_address         = 0x760e9617
  exception_record.number_parameters         = 2
  exception_record.exception_information[ 0] = 0xffffffff887a0020
  exception_record.exception_information[ 1] = 0xffffffff8876017c
  thread_context.data_size                   = 716
  thread_context.rva                         = 0x7952

In this case the exception_record.exception_information contains the error code for the D3D error that is the cause of the crash.

This would help in debugging the crash we're seeing in bug 596431.
Blocks: 596431
This is really hard to do right now, because the processor just runs "minidump_stackwalk -m" on the minidump, which uses an awful pipe-delimited text format, which is a pain in the ass to extend.

I filed bug 573100 a while ago to change it to instead output JSON, which would make life much easier.
Depends on: 573100
OS: Mac OS X → Windows 7
Blocks: 630197
Component: Socorro → General
Product: Webtools → Socorro
This would be easy to do nowadays. Somewhere around here:
https://github.com/mozilla/socorro/blob/7d2713ea2e40463fd06edde0e9a27117acc7745c/minidump-stackwalk/stackwalker.cc#L1152

You'd do:
```
MinidumpException* exception = minidump.GetException();
if (exception) {
  MDRawExceptionStream* raw_exception = exception->exception();
}
```

Then you can pull arbitrary fields out of raw_exception:
https://code.google.com/p/google-breakpad/source/browse/trunk/src/google_breakpad/common/minidump_format.h#515

and stuff them in the JSON result object.

Bumping this to a P2 to look into.

Priority: -- → P2

Mark as enhancement.

Type: task → enhancement

We're not going to get to this any time soon, so I'm bumping it down to P3.

Priority: P2 → P3
You need to log in before you can comment on or make changes to this bug.