History log of /external/google-breakpad/src/common/linux/dump_symbols.cc
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
790d2fd87083ac2635daacb951f190ae0bbf7d76 10-Feb-2015 thestig@chromium.org <thestig@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Cleanup Linux debug link file handling code.

- Handle the case when the debug link points back to the object file.
- Move some checks into a separate SanitizeDebugFile() function.

BUG=636
Review URL: https://breakpad.appspot.com/3784002/


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1426 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
c7ae9c5ed43f4af7d9692bb9213acf7b4822250a 03-Feb-2015 hashimoto@chromium.org <hashimoto@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Follow debug link correctly

As thestig@chromium.org pointed out in https://breakpad.appspot.com/9684002,
LoadSymbols() should return false if |read_gnu_debug_link| is false.

BUG=chromium:453498
R=thestig@chromium.org

Review URL: https://breakpad.appspot.com/2844002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1422 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
daeade75410e1efcd3abe67d2d7d57df8ae57ef4 03-Nov-2014 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Read dynamic symbols table even if binary contains debug info
A=Wander Lairson Costa <wcosta@mozilla.com>. R=ted at https://breakpad.appspot.com/9684002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1400 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
f61c5b3df70750a268880c6fa67407e7a443c06b 29-Apr-2014 rmcilroy@chromium.org <rmcilroy@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Add Arm64 support to dumpsyms.

Adds Arm64 support to dumpsyms, enabling support for EM_AARCH64 elf type and
arm64 registers in DwarfCFIToModule.

BUG=367367,335641,354405
R=mark@chromium.org

Review URL: https://breakpad.appspot.com/1654002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1322 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
aca3b55bfab9c1aee660716ec0f1850e06005882 23-Apr-2014 thestig@chromium.org <thestig@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Linux: Check the CRC32 of the debug link file in the symbol dumper.

R=mark@chromium.org

Review URL: https://breakpad.appspot.com/1644002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1320 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
faa2e5b56ea0148257e9610fe58e7305b407ba52 25-Sep-2013 gordana.cmiljanovic@imgtec.com <gordana.cmiljanovic@imgtec.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Adding mips support for Android.

Mips linux support has been added previously in r1212. Some additional changes
are required to make breakpad functional on Android.

BUG=none
TEST=build, unittests, chrome test application

Review URL: https://breakpad.appspot.com/632002



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1215 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
5f22d6a7f471f2352d394c188560fd06830e14f3 11-Sep-2013 gordana.cmiljanovic@imgtec.com <gordana.cmiljanovic@imgtec.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Adding support for mips.

Support for mips cpu is added to all breakapad targets including unittests.

BUG=none
TEST=unittests

Review URL: https://breakpad.appspot.com/614002



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1212 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
365396c0bc199745522434d390a4504512e57047 06-May-2013 mark@chromium.org <mark@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Fix GetLoadingAddress() to work for Native Client executables

NaCl executables have ELF program headers that look like this (for the
original NaCl x86 GCC toolchain):

Program Header:
LOAD off 0x00010000 vaddr 0x00020000 paddr 0x00020000 align 2**16
filesz 0x00017ce0 memsz 0x00017ce0 flags r-x
LOAD off 0x00030000 vaddr 0x10020000 paddr 0x10020000 align 2**16
filesz 0x00001c98 memsz 0x00001c98 flags r--
LOAD off 0x00040000 vaddr 0x10030000 paddr 0x10030000 align 2**16
filesz 0x000025ec memsz 0x00002b88 flags rw-

or this (for the newer NaCl ARM GCC toolchain):

Program Header:
LOAD off 0x00010000 vaddr 0x00020000 paddr 0x00020000 align 2**16
filesz 0x000193b0 memsz 0x000193b0 flags r-x
LOAD off 0x00000000 vaddr 0x10020000 paddr 0x10020000 align 2**16
filesz 0x00000978 memsz 0x00000978 flags r--
LOAD off 0x00001000 vaddr 0x10031000 paddr 0x10031000 align 2**16
filesz 0x00000abc memsz 0x00000fac flags rw-

Fix GetLoadingAddress() to return the start address of the first
segment, 0x20000, in these cases. Looking at p_offset for this isn't
correct, and the first segment doesn't have p_offset == 0 here because
NaCl can't map the ELF file headers as part of the first segment
(which is for validatable code only).

BUG= https://code.google.com/p/nativeclient/issues/detail?id=3424
TEST= check addresses in output of "dump_syms" when run on NaCl nexe

Patch by Mark Seaborn <mseaborn@chromium.org>
Review URL: https://breakpad.appspot.com/588002/


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1170 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
52dc308f4271478a77415f6b71b7e1c96fe56e5a 24-Apr-2013 thestig@chromium.org <thestig@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Add an option to not handle DWARF inter-compilation unit references in Linux dump_syms.

This saves a lot of memory for dump_syms.

Review URL: https://breakpad.appspot.com/565002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1163 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
4beb03dc3add676334bce115878e970ecbb236ef 06-Mar-2013 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Allow building symbol dumping without STABS support
R=mark at https://breakpad.appspot.com/536002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1125 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
06e17f8d31507e3993609a9495dcaac02d96b4ad 06-Mar-2013 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Allow reading just CFI data when reading symbols
R=thestig at https://breakpad.appspot.com/517002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1124 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
ff3ef0393142e8d73da502e39fd83ac11c671f35 27-Feb-2013 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Fix DumpSymbols error message when using multiple debug_dirs, followup from r1102.
Patch by Julian Seward <jseward@acm.org>, R=ted

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1116 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
8db11ce862ee9d7be6db17bf2784fcc5612a2fea 14-Feb-2013 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Make MmapWrapper a little less silly
R=thestig at https://breakpad.appspot.com/527002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1113 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
248c84d2006fcde85b098066866aebec72b76125 23-Jan-2013 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Include the compilation directory for FILE entries, making them absolute instead of relative
A=Ryan Sleevi <rsleevi@chromium.org> R=mark,ted at https://breakpad.appspot.com/385001/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1106 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
06cdc621bd18b7e4081c2a5d12d80a3c5fc98cab 22-Jan-2013 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Make DumpSymbols methods take a vector of debug_dirs
r=thestig at https://breakpad.appspot.com/512002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1102 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
8ec4fa51179f9f2b7870f1aad4516dfdc36332f0 18-Jan-2013 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Provide a ReadSymbolData function to get symbol data in a Module instead of just serializing it
R=thestig at https://breakpad.appspot.com/510002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1099 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
e6b34c1205c27a08a686b374150676161214e6aa 18-Jan-2013 ted.mielczarek@gmail.com <ted.mielczarek@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Don't make MmapWrapper's destructor assert
R=mark at https://breakpad.appspot.com/511002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1098 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
7867fcbc885065ceb6afee36b824da9d0dd47fe8 18-Jul-2012 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Rework dump_symbols.cc using templates and traits classes to handle cross-word-size symbol dumping
R=mark at https://breakpad.appspot.com/393002/

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@987 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
4e518a4357a2d1c379d4a91df6d4e153ee791101 29-Jun-2012 ivan.penkov@gmail.com <ivan.penkov@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> This change allows compiling the google-breakpad code using a global ::string class instead of std::string. For more details take a look at common/using_std_string.h



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@974 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
d1eb839c4d72a103c68ff0516f3ad0cb729ed9b0 11-Oct-2011 mark@chromium.org <mark@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Minor formatting fix following r865.


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@866 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
dc8ce2e7e22db0e4e584838302dd0c89ca068f54 11-Oct-2011 mark@chromium.org <mark@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> More fixes following r862.


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@865 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
8d54c7509234e9a4918046c12dcb138489f06990 14-Sep-2011 thestig@chromium.org <thestig@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Linux/Mac: Add option to omit the CFI section in dump_syms.
Review URL: http://breakpad.appspot.com/304001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@835 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
3ca4a120de8ec3f35e972e4b23f527bb8f65c479 06-Jul-2011 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Add some unit tests for Linux WriteSymbolFile

This patch adds synth_elf::{StringTable,SymbolTable,ELF} classes to
produce in-memory ELF files to properly test the Linux symbol dumping
code. It also uses those classes to add some basic tests for
the WriteSymbolFile function.

R=jimb at http://breakpad.appspot.com/277001/show

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@794 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
b2f96f314ca9bc2f7307216e61794683a482deaa 06-Jul-2011 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Dump PUBLIC + CFI records from libraries without debug info on Linux, use .dynsym for symbol names if there are no usable debug symbols.

R=jimb at http://breakpad.appspot.com/275001/show

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@793 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
9fc581226040d32b6f0d6b171378d5ea0cdf8fb1 09-Sep-2010 jessicag.feedback@gmail.com <jessicag.feedback@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Fix a handful of comment spelling errors (Issue 385)


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@682 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
c5f5e0ae653c4acbc34325283a6d56475dd56f00 17-Jul-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad Linux dumper: Don't map file into memory a second time just to compute file ID

At present, the Linux symbol dumper maps the ELF file into memory to
examine the debugging information it contains, but then also calls
google_breakpad::FileID::ElfFileIdentifier, which maps the ELF file into
memory again. Some of our object files are large; Mozilla's libxul.so is
1.1GiB. Trying to map such files twice can interfere with tools like
valgrind that map themselves into high addresses (in an attempt to stay out
of the way of ordinary programs).

The FileID class has another method, ElfFileIdentifierFromMappedFile, that
operates on an already-loaded image of the file; use that instead.

a=jimblandy, r=thestig


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@625 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
56eac4dd7a475192e6c00b6a507e0f4b5ce05efe 16-Jul-2010 thestig@chromium.org <thestig@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Add functionality to read the .gnu_debuglink section and load symbols from a debug ELF file.
Review URL: http://breakpad.appspot.com/126001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@624 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
1c87cc86e3cc251d213a1a072afe68cd9d0159d4 06-Jul-2010 thestig@chromium.org <thestig@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Remove some duplicate endianness code.
Review URL: http://breakpad.appspot.com/125001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@621 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
7fbd77715febc18cc7b5e7eca98c03d033a1f1e4 06-Jul-2010 thestig@chromium.org <thestig@chromium.org@4c0a9323-5329-0410-9bdc-e9ce6186880e> Linux: Skip sections of type SHT_NOBITS when loading symbols.
Review URL: http://breakpad.appspot.com/120001

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@620 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
e1930985430ce289f4fe8525f51050e5d78cc44e 25-Jun-2010 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad: Avoid using the C++ <cfoo> headers.

This patch avoids unnecessary use of the <cfoo> headers in files that don't
actually use the identifiers they declare in the std:: namespace.

It also changes some files to better conform with the "Names and Order of
Includes" rules in the Google C++ Style Guide.

A=jimb R=mark

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@619 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
4f456b8c0d094d84b83d4c8eedff7937121e9de1 25-Jun-2010 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad DWARF CFI support: Cleanups requested by Neal

I came across a bunch of comments Neal had made on issue 55011 that I
hadn't addressed. This patch takes care of them.
A=jimb R=thestig

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@618 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
775c6f7640a02841b667fd6300e877bbed574544 05-May-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> 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
/external/google-breakpad/src/common/linux/dump_symbols.cc
b28be1254c0698cfd42a9abb910da3c94cf35a7f 05-May-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad Linux dumper: Rename DumpStabsHandler to StabsToModule.

All the other classes which receive debugging data from some sort of parser
and use it to populate a Module have names ending in "ToModule":
DwarfCUToModule, DwarfCFIToModule. Also, DumpStabsHandler doesn't actually
dump anything.

This patch renames the DumpStabsHandler class to StabsToModule, which is
more consistent and descriptive.

a=jimblandy, r=thestig


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@584 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
b0ec96cee2ab186c9e7e480d03751588f0640bf1 05-May-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad Linux dumper: Make StabsReader independent of endianness and word size.

StabsReader simply applies a reinterpret_cast to treat the stab entry data
as an array of 'struct nlist' structures, making the parser specific on the
host endianness, word size, and alignment rules. On Mac OS X, a single fat
binary file may contain object files of different ABIs, of which the user
chooses one at run time.

This patch changes the parser to read the data using the google_breakpad::
ByteCursor class, which can handle different endiannesses and word sizes.
The StabsReader constructor now takes arguments indicating the endianness
of the data and the size of each entry's value field. The patch changes
src/common/linux/dump_symbols.cc to pass the new argument.

This patch changes the StabsReader unit tests to use the google_breakpad::
TestAssembler classes to generate test data, rather than reading it from a
file. This makes it easy to generate test data in various endiannesses and
word sizes. It also adds tests for the new parser behaviors.

a=jimblandy, r=thestig


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@583 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
504280af60e3052d2ecaa9e003818886e651310f 28-Apr-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad Dumper: Move CFI register names to DwarfCFIToModule class.

At the moment, the mappings from register numbers appearing in DWARF CFI
and .eh_frame exception handling sections to the appropriate
processor-specific names are in src/common/linux/dump_syms.cc. However, the
numberings are (for the most part) the same on all platforms using DWARF,
so there's no reason those tables shouldn't be shared between the Linux and
Mac symbol dumpers.

This patch moves the tables into a nested class of DwarfCFIToModule, so
they the Mac dumper can use them when it is changed to use
DwarfCFIToModule.

a=jimblandy, r=thestig


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@575 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
87855248f1fab83caf002418196a34051d359f2c 05-Apr-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad symbol dumper: Move Linux dumping classes into src/common.

The Linux symbol dumper's classes are reasonably portable, and should be
usable for the Mac dumper as well. Move them to src/common, along with
their unit tests. Update #include directives and Makefile.

a=jimblandy, r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@567 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
b34b1d85259a9fb1d111b879722769c807463678 02-Apr-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad Linux dumper: Use the correct section's base address.

In order to dump call frame information held in .eh_frame sections, the
dumper needs to know the proper base address to use for pointers encoded
using the DW_EH_PE_textrel encoding. This should be the start of the .text
section. However, due to a cut-and-paste typo, the dumper was supplying the
base address of the ".got" section instead.

a=jimblandy, r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@564 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
a0aca73851fbfb62bbfb46395d7ce62b5b9be69b 31-Mar-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad Linux dumper: Include filename in error messages.

a=jimblandy, r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@562 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
c609f474a955e1f617802ff1185efaa5ef9659f9 16-Mar-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad: Support DWARF CFI-driven stack walking on ARM.

This patch allows the Breakpad minidump processor to use data from
STACK CFI records to generate stack traces for the ARM processor.

In the symbol dumper, we need a table mapping DWARF CFI register
numbers to their names: STACK CFI records refer to registers by name.

In the processor, we expand StackwalkerARM::GetCallerFrame to see if
there are STACK CFI records covering the callee, and then use those to
recover the caller's register values.

There's no good reason the ARM walker couldn't use the SimpleCFIWalker
interface declared in cfi_frame_info.h. Unfortunately, that interface
assumes that one can map register names to member pointers of the raw
context type, while MDRawContextARM uses an array to hold the
registers' values: C++ pointer-to-member types can't refer to elements
of member arrays. So we have to write out SimpleCFIWalker::FindCallerRegisters
in StackwalkerARM::GetCallerFrame.

We define enum MDARMRegisterNumbers in minidump_cpu_arm.h, for
convenience in referring to certain ARM registers with dedicated
purposes, like the stack pointer and the PC.

We define validity flags in StackFrameARM for all the registers, since
CFI could theoretically recover any of them. In the same vein, we
expand minidump_stackwalk.cc to print the values of all valid
callee-saves registers in the context --- and use the proper names for
special-purpose registers.

We provide unit tests that give full code and branch coverage (with
minor exceptions). We add a testing interface to StackwalkerARM that
allows us to create context frames that lack some register values.

a=jimblandy, r=mmentovai


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@553 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
a76aaa1442d765410da36d743ef92748ea1b815e 16-Mar-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad Linux dumper: Parse the .eh_frame section.

Extend google_breakpad::CFISection with the ability to produce
.eh_frame data. Entry headers have a different format, and pointers
can be encoded in new and fascinating ways.

Extend dwarf2reader::CallFrameInfo to be able to parse either DWARF
CFI or .eh_frame data, as determined by an argument to the
constructor. Cope with variations in header formats, encoded pointers,
and additional data in 'z' augmentation data blocks. Extend the unit
tests appropriately.

Extend dump_syms to look for a .eh_frame section, and if it is
present, find the necessary base addresess and parse its contents.

There's no need for DwarfCFIToModule to check the version numbers; if
CallFrameInfo can parse it, DwarfCFIToModule should be able to handle
it. Adjust tests accordingly.

a=jimblandy, r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@552 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
3e768ed9c01a244cdb1bc0d6aec34fb25821fbcc 16-Mar-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad Linux dumper: Add support for dumping DWARF CFI as STACK CFI records.

Define a new DWARF parser class, dwarf2reader::CallFrameInfo.

Extend google_breakpad::Module to store and write out 'STACK CFI' records.

Define a new google_breakpad::DwarfCFIToModule class, to accept DWARF
CFI data from the parser and populate a Module with the equivalent
STACK CFI records.

Extend the Linux symbol dumping tool, dump_syms, to use
dwarf2reader::CallFrameInfo, google_breakpad::DwarfCFIToModule, and
google_breakpad::Module to extract DWARF CFI from the executable or
shared library files and write it to the Breakpad symbol file.

Define CFISection, a new class derived from TestAssembler::Section,
for use in creating DWARF CFI data for test cases.

a=jimblandy, r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@550 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
6de1b75da4d9fb29eb8e00f41beab3cbc539874f 18-Feb-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad Linux dumper: Compare section names correctly.

FindSectionByName will return the first section whose name starts with
NAME, because strncmp stops the comparison once NAME's characters have
been found to match. The comparison stops before the terminating '\0'.
For example, if we search for the section named ".eh_frame", we may
get the section named ".eh_frame_hdr".

Instead, check that the section name section has enough space to store
the complete name with its terminating '\0', and then use strcmp,
which will never examine more than strlen(NAME) + 1 bytes from the
section name section, regardless of its contents, and will require the
terminating '\0' to match as well.

a=jimblandy, r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@525 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
952f3c7b7382b02e18c4bc70baa59751105786db 09-Feb-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad Linux dumper: Don't be silly about global functions.

Yes, classes are useful. But that doesn't mean that every function has
to gratuitously become a member function. The Google C++ Style Guide
does not require this silliness, since the function is in the
google_breakpad namespace anyway.

a=jimblandy, r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@519 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
c50e7c604cd1b12bba9421b0a95357fc942ecd7c 09-Feb-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad Linux dumper: Add file comments as required by the style guide.

This also includes some comments I promised Cary Coutant I'd write
about the appropriateness of processing attributes in EndAttributes
calls.

The Google C++ Style Guide requires each file to have an author notice
and a comment explaining the file's general purpose. For the record, I
don't think putting an author notice on the files is a good idea; it's
odd to have the original author retain prominence even if the file has
been heavily edited by others; the version control system answers this
question more accurately. This is only for Style Guide compliance. The
Apache group decided to discourage author annotations, partially for
these reasons:

http://mail-archives.apache.org/mod_mbox/jakarta-jmeter-dev/200402.mbox/%3C4039F65E.7020406@atg.com%3E

a=jimblandy, r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@518 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
83e085b7a331c96237cf8e814f97b3ef4c36a70f 09-Feb-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad: Update copyright notice years on all files changed in 2010.

We've gotten mixed advice from the lawyery types about whether this
matters. But it's easy enough to do.

a=jimblandy, r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@517 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
e53e6af0c1ca5753b8fa685eb4870011c7121683 02-Feb-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad Linux dumper: Recognize more processor architectures.

This extends the ElfArchitecture function to recognize the
architectures it seemed to me that breakpad was most likely to see.

Also: the dumper has historically not provided very helpful error
messages. This patch adds a few that were convenient, but we should do
an audit for this.

a=jimblandy, r=ted.mielczarek


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@507 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
057aa1f6173501e1a62cf91fd08275e7da439166 23-Jan-2010 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad Linux Dumper: Add DWARF support.

This adds DWARF support to the Breakpad Linux dumper. This is
implemented as two handler classes: google_breakpad::DwarfCUToModule
accepts data from dwarf2reader::CompilationUnit, and
google_breakpad::DwarfLineToModule accepts data from a
dwarf2reader::LineInfo, each populating a google_breakpad::Module with
the results. Behaviors specific to particular source languages are
handled by instances of a new class, google_breakpad::Language.

An input executable may contain both STABS and DWARF debugging
information: the dumper automatically recognizes what sorts of
information are available, and integrates the data into a single
output file.

All classes have unit tests, providing line and branch coverage of all
interesting code. Unit tests are written using the Google C++ Testing
Framework, and the Google C++ Mocking Framework where appropriate.

a=jimblandy, r=ccoutant


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@497 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
5a6e1d3f03ec2c8ccbb63edaccf00ecd02e148bc 23-Dec-2009 jimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e> Breakpad Linux dumper: move DumpStabsHandler into its own file, for testing.

This will make it easier to write unit tests for DumpStabsHandler.

a=jimblandy, r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@464 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
bb846bdc98c4c0249bfa9c627f4004aa54b7c900 15-Dec-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Issue 25002: Linux symbol dumper: Require STABS consumers to provide a Warning member.

The StabsHandler class should not provide a fallback definition for
its Warning member function that just throws away warning messages.
It should require the consumer to provide an appropriate definition.

a=jimblandy, r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@442 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
096992fac73756cfa0974a94754329f30fd4e786 01-Dec-2009 nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> Upstreaming several patches from Chrome:

Build fix for systems where sys/user.h needs sys/types.h....
http://breakpad.appspot.com/40002
MDRawSystemInfo.processor_level refers to the CPU family, not the cpuid level..
http://breakpad.appspot.com/40003
Use MD_MODULE_SIZE in place of sizeof(MDRawModule).
http://breakpad.appspot.com/39003
Linux x64 compile fix.
http://breakpad.appspot.com/40004
Include linux_syscall_support.h to get definition of NT_PRXFPREG. This is
Chromium commit 23659.
http://breakpad.appspot.com/40005
Build breakpad / crash reporting on Linux 64-bit. This is Chromium commit
23396.
http://breakpad.appspot.com/40006
Fix #includes in a couple unit tests.
http://breakpad.appspot.com/41001
Clean up unused headers / files for Linux dump_syms.
http://breakpad.appspot.com/40002




git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@432 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
b0baafc4da1f3ffb84e267dd19d176db3de1c14e 18-Aug-2009 nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> Merge of Breakpad Chrome Linux fork

A=agl, Lei Zhang
R=nealsid, agl



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@384 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
eab03fdb72a77dfd71db028e6e5676e734bdc443 07-Aug-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Linux dumper: Move the data structures representing the breakpad data into their own class.

src/linux/common/module.h defines a new class, google_breakpad::Module,
that can represent the contents of a breakpad symbol file. Module::Write
writes a well-formed symbol file to the given stream.

src/linux/common/dump_symbols.cc can now lose its symbol-file-writing
code, and change DumpStabsHandler to populate a Module object, rather
than the old SymbolInfo/SourceFileInfo/... collection of types.

The code to compute function and line sizes, even in the absence of
reliable size data in STABS, is moved into a new Finalize method of
DumpStabsHandler, which is responsible for completing the Module's
contents.

a=jimblandy
r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@380 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
54bc5cfa2d594cc9719bef016657bc80a15d968c 07-Aug-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Linux dumper: Move STABS parsing into its own class.

With this patch, dump_symbols.cc no longer knows about the details of
the STABS debugging format; that is handled by the StabsReader class.
dump_symbols.cc provides a subclass of StabsHandler that builds
dump_symbols' own representation of the data.

a=jimblandy
r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@378 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
68c8481df65940e90151ff2a6a6bd3c01f73f702 05-Aug-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Linux dumper: Make the 'name' field of FuncInfo a std::string instead of a char *.

Because the actual N_FUN strings in the .stabstr section contain type
information after the mangled name, representing this information
using a pointer into .stabstr, while efficient with memory, makes the
FuncInfo data structure STABS-specific: one must know the details of a
STABS N_FUN string's syntax to interpret FuncInfo::name. This patch
removes this STABS dependency from the data structure, and moves us
closer to having an appropriate structure for representing unified
STABS and DWARF data.

a=jimblandy
r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@375 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
3c4de8e8a7c5958c468bcd36fd5e007f8279dc91 05-Aug-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Linux dumper: Properly separate function names from STABS type data.

STABS strings for N_FUN entries contain a mangled function name,
followed by a colon, followed by type information. The type
information itself may contain colons; mangled names never contain
colons (they need to be legal assembly-language identifiers). So the
current code in src/common/linux/dump_symbols.cc:WriteOneFunction that
attempts to separate the mangled name from the STABS junk will
incorrectly include STABS junk in the name, causing demangling to
fail.

Applying the patch below results in changes like these in the symbol
file produced, where an unmangled name followed by STABS junk becomes
a properly demangled name:

## --- base/libxul.so.syms 2009-07-13 21:46:33.000000000 -0700
## +++ tip/libxul.so.syms 2009-07-13 21:51:04.000000000 -0700
## @@ -3907,7 +3907,7 @@
## FILE 3905 /home/jimb/mc/in/gfx/cairo/libpixman/src/pixman-region.c
## FILE 3906 combine.inc
## FILE 3907 /home/jimb/mc/in/gfx/cairo/libpixman/src/pixman-edge-imp.h
## -FUNC 19898c 54 0 _Z20NS_GetCaseConversionv:F(0,1201)=*(0,1202)=xsnsICaseConvers
## ion
## +FUNC 19898c 54 0 NS_GetCaseConversion()
## 19898c 12 54 1
## 19899e 9 56 1
## 1989a7 6 60 1
## @@ -214776,7 +214776,7 @@
## 3847c9 9 57 506
## 3847d2 13 58 506
## 3847e5 7 59 506
## -FUNC 387e89 27 0 _ZN20nsGenericHTMLElement11FromContentEP10nsIContent:F(0,8117)
## =*(0,8118)=xsnsGenericHTMLElement
## +FUNC 387e89 27 0 nsGenericHTMLElement::FromContent(nsIContent*)
## 387e89 7 80 2584
## 387e90 3 80 2584
## 387e93 e 82 2584
## @@ -250473,7 +250473,7 @@
## 3d0d88 7 82 548
## 3d0d8f 25 84 548
## 3d0db4 5 85 548
## -FUNC 3d0e0c 40 0 _ZL21GetEnclosingListFrameP8nsIFrame:f(0,7182)=*(0,7183)=xsnsL
## istControlFrame
## +FUNC 3d0e0c 40 0 GetEnclosingListFrame(nsIFrame*)
## 3d0e0c 5 146 549
## 3d0e11 3 722 2645
## 3d0e14 d 146 549

a=jimblandy
r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@374 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
15117f9ae00f8c594d3529b0e04fdfa12db7a219 05-Aug-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Linux dumper: Don't switch to wrong source file when starting new function.

In STABS, if one function's line number information contains an N_SOL
entry to switch to a new source file, then the next function's line
data should pick up in the same source file where the prior function
left off. However, the Linux dumper restarts each function in the
compilation unit's main source file. This patch fixes that, so that
the output attributes the lines in subsequent functions to the correct
source files.

a=jimblandy
r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@373 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
f6c98159e283995370fce1fd9df2f9a5427bc698 05-Aug-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Linux dumper: Delete non-functional stack parameter size computation.

Delete code to compute function stack parameter size. It never did anything.

a=jimblandy
r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@372 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
133c66ca40da1705c7b7c39105c211b2aee4f0f0 05-Aug-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Linux dumper: Let LineInfo structures point directly to their SourceLineInfo structures

Let LineInfo structures point directly to their SourceLineInfo
structures, rather than holding the index of the file's name in the
.stabstr section in the early phases, and then later the holding
source_id of the file.

This is another step in the process of moving STABS-specific values
out of the types that represent the breakpad symbol data. When we're
done, the non-STABS structures will be something that we can populate
with both STABS and DWARF data --- or at least it will be more easily
replaced with such.

a=jimblandy
r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@371 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
0d23e8c68659fa8c661e3e7454933234f90443c4 30-Jul-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Linux dumper: Don't record file boundary addresses as null-name SourceFileInfoList entries.

STABS information introduces a compilation unit with an N_SO entry
whose address is the start address of the file and whose string is the
name of the compilation unit's main source file. However, STABS
entries can only hold one address, so STABS indicates the compilation
unit's ending address with an N_SO entry whose name is empty.

Currently, the dumper's data structures simply create SourceFileInfo
structures with empty names for these end-of-unit N_SO entries. We
want to remove STABS-specific characteristics from these structures so
that we can replace them with an input-format-independent structure.

This moves end-of-compilation-unit addresses out of the symbol table
structure, and into their own list of boundary addresses.

a=jimblandy
r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@369 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
e0a251236906b84e87ee56c91cf3b1e0c4fd91dc 30-Jul-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Linux dumper: Use pointers to SourceFileInfo structures.

Use a list of pointers to SourceFileInfo structures, not a list of the
structures themselves. This is preparation for a subsequent patch
which makes the data structures less STABS-specific.

This patch introduces a memory leak. If an included file is
referenced only by line entries for functions that LoadFuncSymbols
elected to omit from the func_info list, then its SourceFileInfo
structure is leaked when we destroy the name_to_file map. This leak
is fixed in a subsequent patch by letting the map of files by name own
the file objects.

a=jimblandy
r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@368 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
4a6e708ed62d1b075029e9e0d0b0077a8f1cf746 30-Jul-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Linux dumper: Use a sorted array of addresses in computing function and line sizes.

Replace the sorted lists of files and functions with an array of
boundary addresses. This replaces CompareAddress with the default
comparison, and SortByAddress and NextAddress with the stock STL sort
and upper_bound algorithms, losing ~50 lines of code.

a=jimblandy
r=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@367 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
0eb3c6e5e2846cc71a7fbcf581596f3b5b3135b6 27-Jul-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Linux dumper: Correctly find boundary address when computing line and function sizes.

In NextAddress, check both the file list and the function list for the
nearest boundary. Don't assume that, if we find any bounding entry in
the function list, that must be the nearest thing.

A=jimblandy
R=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@365 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
1147cc4920a56730ec2497789ff71cee0bc99ec3 27-Jul-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> The has_sol field of struct FuncInfo is unused. This patch removes it.

A=jimblandy
R=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@364 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
53cb8044fde30128b761bf20a86149a1a3487882 27-Jul-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> The 'no_next_addr_count' variable in ComputeSizeAndRVA shouldn't be static.

The current arrangement would produce needless warnings if
WriteSymbolFile were ever used twice in the same program invocation.
Even if it weren't wrong, it's unnecessary, and local non-const static
variables require extra care when reading to be sure of their effect.

A=jimblandy
R=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@363 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
722afebee08ebfbf7a19bfea088a2d1c3025f0e4 27-Jul-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Use a std::map instead of a linear search to look up files for line records.

With this patch, the time required to generate Breakpad symbols for
Firefox's libxul.so on a MacBook Pro 3,1 drops from 32s to 2s.

I verified that this patch had no effect on the output of dump_syms
when applied to firefox-bin and its libraries when built with -gstabs+.

A=jimblandy
R=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@362 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
515f92cd61e1933ef280ab96ee329a0a9f4a94f7 27-Jul-2009 jimblandy@gmail.com <jimblandy@gmail.com@4c0a9323-5329-0410-9bdc-e9ce6186880e> Remove warnings about uninitialized fields.

A=jimblandy
R=nealsid


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@361 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
0eb52ff8cc719b22cecf0b2e333ae13fbf9293cd 06-Jun-2009 nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> Use ctsdio streams for dump_syms for significant speedup. Also contains a makefile fix to build in 32-bit mode, even on 64-bit systems.

A=jim blandy
R=nealsid



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@347 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
0abe34ce5dde266de03a7109045d4da3ee128b64 24-Mar-2009 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> issue 305 - breakpad Linux handler doesn't build with compiler built from latest GCC sources. Trivial patch by Jim Blandy

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@321 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
cadc8ddde91cd82aa74375abb45417c75662e9b7 22-Feb-2009 nealsid <nealsid@4c0a9323-5329-0410-9bdc-e9ce6186880e> Issue 294: mmap error checking is not correct.
R=Liu



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@312 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
5f27d9125c71b42c653911b9a1eccf0b64a29d78 25-Nov-2008 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Followup to address some review comments from Issue 259

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@297 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
324d84c2f6cc8a3988dd80deee8b8605e8abb6a1 24-Nov-2008 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Issue 259 - crash when generating large .sym files with dump_syms on Linux. Patch by login_ing@yahoo.com, r=Liu Li

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@296 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
2c2ae2854198ca20c48e62c05816fbaacdd474c7 24-Feb-2008 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> issue 238 - missing includes compiling with gcc 4.3. patch by taras glek, r=me

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@240 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
b801cd6d0f6410f86177223737ed1096c08a97fd 13-Dec-2007 luly81 <luly81@4c0a9323-5329-0410-9bdc-e9ce6186880e> Fix issue 235, properly handling included(inlined) code.

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@236 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
68004c84d6b852cfd4096cd211d2f8d3ff1d9f48 28-Sep-2007 mmentovai <mmentovai@4c0a9323-5329-0410-9bdc-e9ce6186880e> Solaris version of symbol dumper (#207). Patch by Alfred Peng. r=me

http://groups.google.com/group/google-breakpad-dev/browse_thread/thread/e4cbdbf7ddaf7f51


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@218 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
bd7b42587c3585575ff55517046977a4d98ae303 02-Jul-2007 ted.mielczarek <ted.mielczarek@4c0a9323-5329-0410-9bdc-e9ce6186880e> Issue 191 - Linux dump_syms produces bad line numbers for some functions (16 bit overflow). r=Liu Li

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@190 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
e219ba182e00794dee6046b01df467e030ca6390 02-May-2007 luly81 <luly81@4c0a9323-5329-0410-9bdc-e9ce6186880e> Merge Ted's patch for writing symbols to stdout for linux.




git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@149 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
825840253b5839c43a0d28cbc45e15e4de65b910 04-Apr-2007 luly81 <luly81@4c0a9323-5329-0410-9bdc-e9ce6186880e> Discard age field in the dumped symbol file.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@139 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
ab175ccc2be07e805973a399def35c885f1c49c9 27-Mar-2007 luly81 <luly81@4c0a9323-5329-0410-9bdc-e9ce6186880e> Fix bug of issue 135, now can dump symbols for dynamic libraries.
Also some minor fixes to make it compile with more strict compiling options.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@133 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc
bcd46f007919b5063164c8c5c6c2bd4dfb62681e 12-Mar-2007 luly81 <luly81@4c0a9323-5329-0410-9bdc-e9ce6186880e> Add Linux exception handler.
Add Linux stab symbol dumper.
Add minidump & symbol uploader for Linux.



git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@126 4c0a9323-5329-0410-9bdc-e9ce6186880e
/external/google-breakpad/src/common/linux/dump_symbols.cc