Breakpad: Basic support for STACK WIN unwinding
authorPavel Labath <pavel@labath.sk>
Thu, 5 Sep 2019 07:05:15 +0000 (07:05 +0000)
committerPavel Labath <pavel@labath.sk>
Thu, 5 Sep 2019 07:05:15 +0000 (07:05 +0000)
commitc3bea40bf751b1ade264e2df8487d196e0c7d3c8
tree54f8ec6c713b28bbde8bda13b3a9a794543b51a3
parente46639620d32c4edf274d5d2964850542d34db15
Breakpad: Basic support for STACK WIN unwinding

Summary:
This patch makes it possible to unwind via breakpad STACK WIN records.
It is "basic" because two important features are missing:
- support for the .raSearch keyword
- support for multiple STACK WIN records within a single function
Right now, we just reject the .raSearch records, and always pick the
first record for the whole function
SymbolFileBreakpad, and so I think it can serve as a good example of
what is needed of the symbol file and unwinding machinery to make this
work.

However, it is already useful for unwinding in some situations, and it
sets up the general framework for the parsing of these kinds of records,
which reduces the size of the followup patches implementing the two
other components.

Reviewers: amccarth, rnk, markmentovai

Subscribers: lldb-commits

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

llvm-svn: 371017
lldb/lit/SymbolFile/Breakpad/Inputs/unwind-via-stack-win.syms [new file with mode: 0644]
lldb/lit/SymbolFile/Breakpad/Inputs/unwind-via-stack-win.yaml [new file with mode: 0644]
lldb/lit/SymbolFile/Breakpad/unwind-via-stack-win.test [new file with mode: 0644]
lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp
lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.h