Open Bug 610380 Opened 14 years ago Updated 4 months 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

Gabriele: Is this bug relevant anymore? If so, I can write up a feature request in rust-minidump.

Flags: needinfo?(gsvelto)

Yes! Thanks for pointing it out because we're not surfacing that information yet.

Flags: needinfo?(gsvelto)

rust-minidump issue: https://github.com/rust-minidump/rust-minidump/issues/1046

Once that's implemented in rust-minidump, we can figure out what's public/sensitive and how we want to expose it in Crash Stats.

(In reply to Will Kahn-Greene [:willkg] ET needinfo? me from comment #8)

Once that's implemented in rust-minidump, we can figure out what's public/sensitive and how we want to expose it in Crash Stats.

Thanks! This will probably be public because we already use the content of this field for certain exceptions (Windows stores the crash address or the error code there sometimes), so it's just a matter of surfacing it for a broader set of exceptions (and figure out how to display them).

You need to log in before you can comment on or make changes to this bug.