Minidump plugin: redesign the x86_64 register context
authorDimitar Vlahovski <dvlahovski@google.com>
Thu, 20 Oct 2016 16:01:36 +0000 (16:01 +0000)
committerDimitar Vlahovski <dvlahovski@google.com>
Thu, 20 Oct 2016 16:01:36 +0000 (16:01 +0000)
commit039983b915a130df66e3d4bd1f0705519386f09c
tree0e3f41b18fb5329df4b937654baa204210795d34
parent7314c48bcbc5d0ebcda1c061c42ad0466b736416
Minidump plugin: redesign the x86_64 register context

Summary:
I misunderstood the format of the register context layout.
I thought it was a dynamically changing structure, and that it's size
depended on context_flags.
It turned out that it always has the same fixed layout and size,
and the context_flags says which fields of the
struct have valid values.
This required a minor redesign of the register context class.

The layout inconsistency, however, was not a "problem" before (e.g. the plugin was working)
because there also was a bug with checking context_flags - the code was
parsing the entire struct regardless of context_flags.
This bug is also fixed in this commit.

Reviewers: labath, zturner

Subscribers: lldb-commits, amccarth

Differential Revision: https://reviews.llvm.org/D25677

llvm-svn: 284741
lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.cpp
lldb/source/Plugins/Process/minidump/RegisterContextMinidump_x86_64.h