diff options
author | jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2010-05-05 17:34:19 +0000 |
---|---|---|
committer | jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2010-05-05 17:34:19 +0000 |
commit | 775c6f7640a02841b667fd6300e877bbed574544 (patch) | |
tree | 0d0b83bd37a170951f968aafd1daa6d595f00b8b /src/common/dwarf/bytereader.h | |
parent | Breakpad STABS parser: Use a test fixture in StabsReader unit tests. (diff) | |
download | breakpad-775c6f7640a02841b667fd6300e877bbed574544.tar.xz |
Breakpad Linux dumper: Handle STABS-in-symbol-table, and line number records outside functions.
This patch addresses two differences between Linux and Macintosh OS X STABS
data:
- StabsReader assumes that the STABS entries follow the conventions for
storing STABS data in object file sections (that is, .stabs and
.stabstr), rather than in the object files's linker symbol table. On Mac
OS X, STABS entries live in the Mach-O file's LC_SYMTAB load command,
along with all the other linker symbols; they are not grouped into units
by N_UNDF entries.
This patch adds a boolean argument to the StabsReader constructor
indicating whether the parser should treat N_UNDF entries as unit
boundaries; this argument should be true on Linux, and false on Mac. The
patch changes src/common/linux/dump_symbols.cc to pass this new argument.
- Mac OS X STABS place SLINE (line number) records immediately before the
FUN record for the function to which they belong, and the values of such
records are absolute, not relative to the function start.
This patch extends the parser to queue up such records and report them to
the handler when we do see the FUN record. The meaning of
StabsHandler::Line remains unchanged; existing handlers do not need to be
adjusted.
This patch also adds unit tests for the new parser behaviors.
a=jimblandy, r=mark
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@587 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/common/dwarf/bytereader.h')
0 files changed, 0 insertions, 0 deletions