Closed Bug 1687201 Opened 3 years ago Closed 3 years ago

Add support for XSTATE info to Breakpad (or its Rust rewrite)

Categories

(Toolkit :: Crash Reporting, enhancement)

x86_64
Windows
enhancement

Tracking

()

RESOLVED MOVED

People

(Reporter: gsvelto, Unassigned)

References

Details

While working on bug 1683232 I pointed out that the x86 and x86-64 contexts we encountered were larger than the default structure declared in minidump format headers and that the extra data was undocumented.

As it turns out not only it is documented but I added (partial) support for it to Breakpad four years ago... and then forgot about it. I correctly guessed in bug 1683232 comment 7 that this extra stuff must be coming from the processor extended state and indeed it is! To be able to read it we need to inspect the MiscInfo structure (version 5) and read the XSTATE description from the MDXStateConfigFeatureMscInfo. Armed with that information we should be able to decode the extra data in the CPU context. Note that we also have the expected size of the context so we should use that to validate what we're reading.

The content of the various XSTATE bits are described in Intel ISA manuals, chapter 13 (specifically look at 13.1 and 13.5).

Another bit of work that needs to be done is add the latest changes from the corresponding Windows headers. Namely two more XSTATE fields were added, XSTATE_CET_U and XSTATE_LWP. These defintions are found in um/winnt.h.

We're doing this in rust-minidump, see issue #152

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → MOVED
You need to log in before you can comment on or make changes to this bug.