Add support for XSTATE info to Breakpad (or its Rust rewrite)
Categories
(Toolkit :: Crash Reporting, enhancement)
Tracking
()
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
.
Reporter | ||
Comment 1•3 years ago
|
||
We're doing this in rust-minidump, see issue #152
Description
•