breakpad/src/common/dwarf
jimblandy 5e4f6feaf6 Breakpad DWARF: Add support for DWARF 4 attribute forms.
This patch allows Breakpad's DWARF reader to at least read or skip
attributes using the new forms defined in version 4 of the DWARF
specification, instead of crashing.

Attributes encoded using DW_FORM_flag_present, DW_FORM_sec_offset, and
DW_FORM_exprloc should work fine now. However, compilation units using
DW_FORM_ref_sig8 to refer to types in .debug_types will need further work
to support. (GCC 4.6.2 does not emit .debug_types sections.)

Specifically:

- dwarf2reader::DwarfForm gets new values.
- dwarf2reader::Dwarf2Handler and dwarf2reader::DIEHandler get new handler
  methods, named ProcessAttributeSignature, for DW_FORM_ref_sig8 attributes.
- dwarf2reader::CompilationUnit reads DW_FORM_ref_sig8 attributes, and
  passes them to ProcessAttributeSignature. It also gets support for
  DW_FORM_sec_offset, DW_FORM_exprloc, and DW_FORM_flag_present, using the
  existing appropriate ProcessAttribute* methods.
- dwarf2reader::DIEDispatcher passes through ProcessAttributeSignature
  attributes to its DIEHandler.
- Unit tests are updated.

a=jimb, r=ted.mielczarek
Review URL: http://breakpad.appspot.com/343003/


git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@912 4c0a9323-5329-0410-9bdc-e9ce6186880e
2012-02-01 15:01:54 +00:00
..
bytereader-inl.h Breakpad: Avoid using the C++ <cfoo> headers. 2010-06-25 16:57:07 +00:00
bytereader.cc Breakpad DWARF reader: Use uint64, not uint64_t in DWARF reader code. 2010-08-25 00:54:26 +00:00
bytereader.h Breakpad DWARF reader: Use uint64, not uint64_t in DWARF reader code. 2010-08-25 00:54:26 +00:00
bytereader_unittest.cc Breakpad Mac symbol dumper: Add new Mach-O reader class. 2010-06-25 16:56:16 +00:00
cfi_assembler.cc Breakpad: Avoid using the C++ <cfoo> headers. 2010-06-25 16:57:07 +00:00
cfi_assembler.h Breakpad DWARF CFI support: Cleanups requested by Neal 2010-06-25 16:57:02 +00:00
dwarf2diehandler.cc Breakpad DWARF: Add support for DWARF 4 attribute forms. 2012-02-01 15:01:54 +00:00
dwarf2diehandler.h Breakpad DWARF: Add support for DWARF 4 attribute forms. 2012-02-01 15:01:54 +00:00
dwarf2diehandler_unittest.cc Breakpad DWARF: Add support for DWARF 4 attribute forms. 2012-02-01 15:01:54 +00:00
dwarf2enums.h Breakpad DWARF: Add support for DWARF 4 attribute forms. 2012-02-01 15:01:54 +00:00
dwarf2reader.cc Breakpad DWARF: Add support for DWARF 4 attribute forms. 2012-02-01 15:01:54 +00:00
dwarf2reader.h Breakpad DWARF: Add support for DWARF 4 attribute forms. 2012-02-01 15:01:54 +00:00
dwarf2reader_cfi_unittest.cc Add includes for unittests that appear to need them. 2011-10-17 19:08:31 +00:00
dwarf2reader_die_unittest.cc Breakpad DWARF: Add support for DWARF 4 attribute forms. 2012-02-01 15:01:54 +00:00
dwarf2reader_test_common.h Add partial unit tests for dwarf2reader::CompilationUnit. 2012-02-01 14:57:58 +00:00
functioninfo.cc Additional fixes following r862. 2011-10-11 18:43:41 +00:00
functioninfo.h Additional fixes following r862. 2011-10-11 18:43:41 +00:00
line_state_machine.h Clean up build for 64 bit. 2010-07-19 20:43:49 +00:00
types.h Issue 42002: Breakpad DWARF parser: avoid using <stdint.h> type 2009-12-15 17:21:14 +00:00