breakpad/src/common/linux
jimblandy 775c6f7640 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
2010-05-05 17:34:19 +00:00
..
dump_symbols.cc Breakpad Linux dumper: Handle STABS-in-symbol-table, and line number records outside functions. 2010-05-05 17:34:19 +00:00
dump_symbols.h Breakpad Linux dumper: Don't be silly about global functions. 2010-02-09 17:13:17 +00:00
eintr_wrapper.h Breakpad: Update copyright notice years on all files changed in 2010. 2010-02-09 17:08:56 +00:00
file_id.cc Issue 357: New Linux file_id code doesn't persist across strip. r=agl,nealsid at http://breakpad.appspot.com/49008 2009-12-23 17:09:27 +00:00
file_id.h Issue 357: New Linux file_id code doesn't persist across strip. r=agl,nealsid at http://breakpad.appspot.com/49008 2009-12-23 17:09:27 +00:00
file_id_unittest.cc Issue 357: New Linux file_id code doesn't persist across strip. r=agl,nealsid at http://breakpad.appspot.com/49008 2009-12-23 17:09:27 +00:00
google_crashdump_uploader.cc New uploader for Linux with unit tests, and gflags/glog libraries 2009-09-29 21:55:19 +00:00
google_crashdump_uploader.h New uploader for Linux with unit tests, and gflags/glog libraries 2009-09-29 21:55:19 +00:00
google_crashdump_uploader_test.cc New uploader for Linux with unit tests, and gflags/glog libraries 2009-09-29 21:55:19 +00:00
guid_creator.cc Issue 42001: Breakpad Linux Dumper: remove compilation warnings in guid_creator.cc. 2009-12-15 17:11:54 +00:00
guid_creator.h Add Linux exception handler. 2007-03-12 01:53:18 +00:00
http_upload.cc issue 336 - Look for libcurl-gnutls in addition to libcurl.so. Patch by Karl Tomlinson <karlt@mozbugz.karlt.net>, r=me 2009-12-03 16:31:25 +00:00
http_upload.h Issue 221 - HTTPUpload::SendRequest should provide error code or error description to callers. r=Liu Li 2007-11-02 12:22:35 +00:00
libcurl_wrapper.cc Patch from Zhurun to fix build breaks in gcc 4.4.1 2010-04-26 23:52:50 +00:00
libcurl_wrapper.h New uploader for Linux with unit tests, and gflags/glog libraries 2009-09-29 21:55:19 +00:00
linux_libc_support.h Merge of Breakpad Chrome Linux fork 2009-08-17 23:12:53 +00:00
linux_libc_support_unittest.cc Upstreaming several patches from Chrome: 2009-12-01 21:35:52 +00:00
linux_syscall_support.h Fix assembly in the ARM sys_clone implementation to indicate that r7 is clobbered, and also remove some extraneous semicolons from ARM portions of linux_syscall_support. r=jimb at https://bugzilla.mozilla.org/show_bug.cgi?id=555674 2010-04-29 18:24:04 +00:00
memory.h Upstreaming several patches from Chrome: 2009-12-01 21:35:52 +00:00
memory_unittest.cc Upstreaming several patches from Chrome: 2009-12-01 21:35:52 +00:00