bug 884300 - fix DWARF CFI record serialization. r=glandium a=lsblakk
authorTed Mielczarek <ted@mielczarek.org>
Tue, 18 Jun 2013 11:56:43 -0400
changeset 142945 3c4bf95dc945b34d85857978d5e95a5f41011c0e
parent 142944 f9f869d1ec535a98cb95a3eb38699b51f00a4f88
child 142946 bab83a05084173955f8117512ddef2c80c95260d
push id2579
push userakeybl@mozilla.com
push dateMon, 24 Jun 2013 18:52:47 +0000
treeherdermozilla-beta@b69b7de8a05a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersglandium, lsblakk
bugs884300
milestone23.0a2
bug 884300 - fix DWARF CFI record serialization. r=glandium a=lsblakk (transplanted from 24e9d0e5998d0a6b846473ec22e022b338857543)
toolkit/crashreporter/breakpad-patches/03-unique-string.patch
toolkit/crashreporter/google-breakpad/src/common/module.cc
toolkit/crashreporter/google-breakpad/src/common/module_unittest.cc
--- a/toolkit/crashreporter/breakpad-patches/03-unique-string.patch
+++ b/toolkit/crashreporter/breakpad-patches/03-unique-string.patch
@@ -1,13 +1,14 @@
 # HG changeset patch
 # User Ted Mielczarek <ted.mielczarek@gmail.com>
 # Date 1360255134 18000
-# Node ID d7bfb673574a3afe8b4f76f42fb52e2545770dad
-# Parent  d23a69a6c34a1f1c21e241f37b388c8689f2386b
+#      Thu Feb 07 11:38:54 2013 -0500
+# Node ID 79cecfef3c2a10d719fe1af9fae2e5257109b028
+# Parent 08f184a7e6d6d15ecc20abd56bc4e36669c0c68a
 Rework PostfixEvaluator to use a UniqueString type
 Patch by Julian Seward <jseward@acm.org>, R=ted
 
 diff --git a/Makefile.am b/Makefile.am
 --- a/Makefile.am
 +++ b/Makefile.am
 @@ -134,16 +134,17 @@
  	src/google_breakpad/processor/source_line_resolver_interface.h \
@@ -22,17 +23,17 @@ diff --git a/Makefile.am b/Makefile.am
  	src/processor/address_map-inl.h \
  	src/processor/address_map.h \
  	src/processor/basic_code_module.h \
  	src/processor/basic_code_modules.cc \
  	src/processor/basic_code_modules.h \
  	src/processor/basic_source_line_resolver_types.h \
  	src/processor/basic_source_line_resolver.cc \
  	src/processor/binarystream.h \
-@@ -426,16 +427,17 @@
+@@ -430,16 +431,17 @@
  src_tools_linux_dump_syms_dump_syms_SOURCES = \
  	src/common/dwarf_cfi_to_module.cc \
  	src/common/dwarf_cu_to_module.cc \
  	src/common/dwarf_line_to_module.cc \
  	src/common/language.cc \
  	src/common/module.cc \
  	src/common/stabs_reader.cc \
  	src/common/stabs_to_module.cc \
@@ -40,17 +41,17 @@ diff --git a/Makefile.am b/Makefile.am
  	src/common/dwarf/bytereader.cc \
  	src/common/dwarf/dwarf2diehandler.cc \
  	src/common/dwarf/dwarf2reader.cc \
  	src/common/linux/dump_symbols.cc \
  	src/common/linux/elf_symbols_to_module.cc \
  	src/common/linux/elfutils.cc \
  	src/common/linux/file_id.cc \
  	src/common/linux/linux_libc_support.cc \
-@@ -469,16 +471,17 @@
+@@ -473,16 +475,17 @@
  	src/common/memory_range_unittest.cc \
  	src/common/module.cc \
  	src/common/module_unittest.cc \
  	src/common/stabs_reader.cc \
  	src/common/stabs_reader_unittest.cc \
  	src/common/stabs_to_module.cc \
  	src/common/stabs_to_module_unittest.cc \
  	src/common/test_assembler.cc \
@@ -58,17 +59,17 @@ diff --git a/Makefile.am b/Makefile.am
  	src/common/dwarf/bytereader.cc \
  	src/common/dwarf/bytereader_unittest.cc \
  	src/common/dwarf/cfi_assembler.cc \
  	src/common/dwarf/dwarf2diehandler.cc \
  	src/common/dwarf/dwarf2diehandler_unittest.cc \
  	src/common/dwarf/dwarf2reader.cc \
  	src/common/dwarf/dwarf2reader_cfi_unittest.cc \
  	src/common/dwarf/dwarf2reader_die_unittest.cc \
-@@ -557,31 +560,33 @@
+@@ -561,31 +564,33 @@
  src_processor_basic_source_line_resolver_unittest_CPPFLAGS = \
  	-I$(top_srcdir)/src \
  	-I$(top_srcdir)/src/testing/include \
  	-I$(top_srcdir)/src/testing/gtest/include \
  	-I$(top_srcdir)/src/testing/gtest \
  	-I$(top_srcdir)/src/testing
  src_processor_basic_source_line_resolver_unittest_LDADD = \
  	src/common/module.o \
@@ -92,17 +93,17 @@ diff --git a/Makefile.am b/Makefile.am
  	src/processor/cfi_frame_info.o \
  	src/processor/logging.o \
  	src/processor/pathname_stripper.o \
  	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
  src_processor_cfi_frame_info_unittest_CPPFLAGS = \
  	-I$(top_srcdir)/src \
  	-I$(top_srcdir)/src/testing/include \
  	-I$(top_srcdir)/src/testing/gtest/include \
-@@ -602,16 +607,17 @@
+@@ -606,16 +611,17 @@
  src_processor_exploitability_unittest_CPPFLAGS = \
  	-I$(top_srcdir)/src \
  	-I$(top_srcdir)/src/testing/include \
  	-I$(top_srcdir)/src/testing/gtest/include \
  	-I$(top_srcdir)/src/testing/gtest \
  	-I$(top_srcdir)/src/testing
  src_processor_exploitability_unittest_LDADD = \
  	src/common/module.o \
@@ -110,17 +111,17 @@ diff --git a/Makefile.am b/Makefile.am
  	src/processor/minidump_processor.o \
  	src/processor/process_state.o \
  	src/processor/disassembler_x86.o \
  	src/processor/exploitability.o \
  	src/processor/exploitability_win.o \
  	src/processor/basic_code_modules.o \
  	src/processor/basic_source_line_resolver.o \
  	src/processor/call_stack.o \
-@@ -654,16 +660,17 @@
+@@ -659,16 +665,17 @@
  src_processor_fast_source_line_resolver_unittest_CPPFLAGS = \
  	-I$(top_srcdir)/src \
  	-I$(top_srcdir)/src/testing/include \
  	-I$(top_srcdir)/src/testing/gtest/include \
  	-I$(top_srcdir)/src/testing/gtest \
  	-I$(top_srcdir)/src/testing
  src_processor_fast_source_line_resolver_unittest_LDADD = \
  	src/common/module.o \
@@ -128,17 +129,17 @@ diff --git a/Makefile.am b/Makefile.am
  	src/processor/fast_source_line_resolver.o \
  	src/processor/basic_source_line_resolver.o \
  	src/processor/cfi_frame_info.o \
  	src/processor/module_comparer.o \
  	src/processor/module_serializer.o \
  	src/processor/pathname_stripper.o \
  	src/processor/logging.o \
  	src/processor/source_line_resolver_base.o \
-@@ -692,16 +699,17 @@
+@@ -697,16 +704,17 @@
  src_processor_minidump_processor_unittest_CPPFLAGS = \
  	-I$(top_srcdir)/src \
  	-I$(top_srcdir)/src/testing/include \
  	-I$(top_srcdir)/src/testing/gtest/include \
  	-I$(top_srcdir)/src/testing/gtest \
  	-I$(top_srcdir)/src/testing
  src_processor_minidump_processor_unittest_LDADD = \
  	src/common/module.o \
@@ -146,17 +147,17 @@ diff --git a/Makefile.am b/Makefile.am
  	src/processor/basic_code_modules.o \
  	src/processor/basic_source_line_resolver.o \
  	src/processor/call_stack.o \
  	src/processor/cfi_frame_info.o \
  	src/processor/disassembler_x86.o \
  	src/processor/exploitability.o \
  	src/processor/exploitability_win.o \
  	src/processor/logging.o \
-@@ -806,16 +814,17 @@
+@@ -812,16 +820,17 @@
  src_processor_pathname_stripper_unittest_LDADD = \
  	src/processor/pathname_stripper.o \
  	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
  
  src_processor_postfix_evaluator_unittest_SOURCES = \
  	src/processor/postfix_evaluator_unittest.cc
  src_processor_postfix_evaluator_unittest_LDADD = \
  	src/common/module.o \
@@ -164,17 +165,17 @@ diff --git a/Makefile.am b/Makefile.am
  	src/processor/logging.o \
  	src/processor/pathname_stripper.o \
  	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
  
  src_processor_range_map_unittest_SOURCES = \
  	src/processor/range_map_unittest.cc
  src_processor_range_map_unittest_LDADD = \
  	src/processor/logging.o \
-@@ -936,16 +945,17 @@
+@@ -943,16 +952,17 @@
  	src/processor/logging.o \
  	src/processor/minidump.o \
  	src/processor/pathname_stripper.o
  
  src_processor_minidump_stackwalk_SOURCES = \
  	src/processor/minidump_stackwalk.cc
  src_processor_minidump_stackwalk_LDADD = \
  	src/common/module.o \
@@ -207,17 +208,17 @@ diff --git a/Makefile.in b/Makefile.in
  	src/processor/basic_code_modules.cc \
  	src/processor/basic_code_modules.h \
  	src/processor/basic_source_line_resolver_types.h \
  	src/processor/basic_source_line_resolver.cc \
  	src/processor/binarystream.h src/processor/binarystream.cc \
  	src/processor/call_stack.cc src/processor/cfi_frame_info.cc \
  	src/processor/cfi_frame_info.h \
  	src/processor/contained_range_map-inl.h \
-@@ -330,16 +331,17 @@
+@@ -332,16 +333,17 @@
  	src/processor/static_map_iterator-inl.h \
  	src/processor/static_map_iterator.h \
  	src/processor/static_map-inl.h src/processor/static_map.h \
  	src/processor/static_range_map-inl.h \
  	src/processor/static_range_map.h src/processor/tokenize.cc \
  	src/processor/tokenize.h
  @DISABLE_PROCESSOR_FALSE@am_src_libbreakpad_a_OBJECTS =  \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.$(OBJEXT) \
@@ -225,17 +226,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/processor/binarystream.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.$(OBJEXT) \
-@@ -518,17 +520,18 @@
+@@ -525,17 +527,18 @@
  	src/common/dwarf_cu_to_module_unittest.cc \
  	src/common/dwarf_line_to_module.cc \
  	src/common/dwarf_line_to_module_unittest.cc \
  	src/common/language.cc src/common/memory_range_unittest.cc \
  	src/common/module.cc src/common/module_unittest.cc \
  	src/common/stabs_reader.cc src/common/stabs_reader_unittest.cc \
  	src/common/stabs_to_module.cc \
  	src/common/stabs_to_module_unittest.cc \
@@ -245,17 +246,17 @@ diff --git a/Makefile.in b/Makefile.in
  	src/common/dwarf/bytereader_unittest.cc \
  	src/common/dwarf/cfi_assembler.cc \
  	src/common/dwarf/dwarf2diehandler.cc \
  	src/common/dwarf/dwarf2diehandler_unittest.cc \
  	src/common/dwarf/dwarf2reader.cc \
  	src/common/dwarf/dwarf2reader_cfi_unittest.cc \
  	src/common/dwarf/dwarf2reader_die_unittest.cc \
  	src/common/linux/dump_symbols.cc \
-@@ -562,16 +565,17 @@
+@@ -569,16 +572,17 @@
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/src_common_dumper_unittest-memory_range_unittest.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/src_common_dumper_unittest-module.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/src_common_dumper_unittest-module_unittest.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/src_common_dumper_unittest-stabs_reader.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/src_common_dumper_unittest-stabs_reader_unittest.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/src_common_dumper_unittest-stabs_to_module.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/src_common_dumper_unittest-stabs_to_module_unittest.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/src_common_dumper_unittest-test_assembler.$(OBJEXT) \
@@ -263,17 +264,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/src_common_dumper_unittest-bytereader.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/src_common_dumper_unittest-bytereader_unittest.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/src_common_dumper_unittest-cfi_assembler.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/src_common_dumper_unittest-dwarf2diehandler_unittest.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/src_common_dumper_unittest-dwarf2reader.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/src_common_dumper_unittest-dwarf2reader_cfi_unittest.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/src_common_dumper_unittest-dwarf2reader_die_unittest.$(OBJEXT) \
-@@ -630,16 +634,17 @@
+@@ -637,16 +641,17 @@
  	src/testing/gtest/src/gtest-all.cc \
  	src/testing/src/gmock-all.cc
  @DISABLE_PROCESSOR_FALSE@am_src_processor_basic_source_line_resolver_unittest_OBJECTS = src/processor/src_processor_basic_source_line_resolver_unittest-basic_source_line_resolver_unittest.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/testing/gtest/src/src_processor_basic_source_line_resolver_unittest-gtest-all.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/testing/src/src_processor_basic_source_line_resolver_unittest-gmock-all.$(OBJEXT)
  src_processor_basic_source_line_resolver_unittest_OBJECTS = $(am_src_processor_basic_source_line_resolver_unittest_OBJECTS)
  @DISABLE_PROCESSOR_FALSE@src_processor_basic_source_line_resolver_unittest_DEPENDENCIES =  \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.o \
@@ -281,17 +282,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/tokenize.o \
  @DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
  @DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
-@@ -664,16 +669,17 @@
+@@ -671,16 +676,17 @@
  @DISABLE_PROCESSOR_FALSE@am_src_processor_cfi_frame_info_unittest_OBJECTS = src/processor/src_processor_cfi_frame_info_unittest-cfi_frame_info_unittest.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/testing/gtest/src/src_processor_cfi_frame_info_unittest-gtest-all.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/testing/gtest/src/src_processor_cfi_frame_info_unittest-gtest_main.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/testing/src/src_processor_cfi_frame_info_unittest-gmock-all.$(OBJEXT)
  src_processor_cfi_frame_info_unittest_OBJECTS =  \
  	$(am_src_processor_cfi_frame_info_unittest_OBJECTS)
  @DISABLE_PROCESSOR_FALSE@src_processor_cfi_frame_info_unittest_DEPENDENCIES =  \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.o \
@@ -299,17 +300,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
  @DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
  @DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
  am__src_processor_contained_range_map_unittest_SOURCES_DIST =  \
  	src/processor/contained_range_map_unittest.cc
  @DISABLE_PROCESSOR_FALSE@am_src_processor_contained_range_map_unittest_OBJECTS = src/processor/contained_range_map_unittest.$(OBJEXT)
-@@ -706,16 +712,17 @@
+@@ -713,16 +719,17 @@
  @DISABLE_PROCESSOR_FALSE@am_src_processor_exploitability_unittest_OBJECTS = src/processor/src_processor_exploitability_unittest-exploitability_unittest.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/testing/gtest/src/src_processor_exploitability_unittest-gtest-all.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/testing/gtest/src/src_processor_exploitability_unittest-gtest_main.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/testing/src/src_processor_exploitability_unittest-gmock-all.$(OBJEXT)
  src_processor_exploitability_unittest_OBJECTS =  \
  	$(am_src_processor_exploitability_unittest_OBJECTS)
  @DISABLE_PROCESSOR_FALSE@src_processor_exploitability_unittest_DEPENDENCIES =  \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.o \
@@ -317,17 +318,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/minidump_processor.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/process_state.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
-@@ -740,16 +747,17 @@
+@@ -748,16 +755,17 @@
  	src/testing/gtest/src/gtest-all.cc \
  	src/testing/src/gmock-all.cc
  @DISABLE_PROCESSOR_FALSE@am_src_processor_fast_source_line_resolver_unittest_OBJECTS = src/processor/src_processor_fast_source_line_resolver_unittest-fast_source_line_resolver_unittest.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/testing/gtest/src/src_processor_fast_source_line_resolver_unittest-gtest-all.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/testing/src/src_processor_fast_source_line_resolver_unittest-gmock-all.$(OBJEXT)
  src_processor_fast_source_line_resolver_unittest_OBJECTS = $(am_src_processor_fast_source_line_resolver_unittest_OBJECTS)
  @DISABLE_PROCESSOR_FALSE@src_processor_fast_source_line_resolver_unittest_DEPENDENCIES =  \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.o \
@@ -335,17 +336,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/fast_source_line_resolver.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/module_comparer.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/module_serializer.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
-@@ -786,16 +794,17 @@
+@@ -794,16 +802,17 @@
  	src/testing/src/gmock-all.cc
  @DISABLE_PROCESSOR_FALSE@am_src_processor_minidump_processor_unittest_OBJECTS = src/processor/src_processor_minidump_processor_unittest-minidump_processor_unittest.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/testing/gtest/src/src_processor_minidump_processor_unittest-gtest-all.$(OBJEXT) \
  @DISABLE_PROCESSOR_FALSE@	src/testing/src/src_processor_minidump_processor_unittest-gmock-all.$(OBJEXT)
  src_processor_minidump_processor_unittest_OBJECTS =  \
  	$(am_src_processor_minidump_processor_unittest_OBJECTS)
  @DISABLE_PROCESSOR_FALSE@src_processor_minidump_processor_unittest_DEPENDENCIES =  \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.o \
@@ -353,17 +354,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
-@@ -817,16 +826,17 @@
+@@ -826,16 +835,17 @@
  @DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
  am__src_processor_minidump_stackwalk_SOURCES_DIST =  \
  	src/processor/minidump_stackwalk.cc
  @DISABLE_PROCESSOR_FALSE@am_src_processor_minidump_stackwalk_OBJECTS = src/processor/minidump_stackwalk.$(OBJEXT)
  src_processor_minidump_stackwalk_OBJECTS =  \
  	$(am_src_processor_minidump_stackwalk_OBJECTS)
  @DISABLE_PROCESSOR_FALSE@src_processor_minidump_stackwalk_DEPENDENCIES =  \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.o \
@@ -371,17 +372,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/binarystream.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.o \
-@@ -879,16 +889,17 @@
+@@ -889,16 +899,17 @@
  @DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
  am__src_processor_postfix_evaluator_unittest_SOURCES_DIST =  \
  	src/processor/postfix_evaluator_unittest.cc
  @DISABLE_PROCESSOR_FALSE@am_src_processor_postfix_evaluator_unittest_OBJECTS = src/processor/postfix_evaluator_unittest.$(OBJEXT)
  src_processor_postfix_evaluator_unittest_OBJECTS =  \
  	$(am_src_processor_postfix_evaluator_unittest_OBJECTS)
  @DISABLE_PROCESSOR_FALSE@src_processor_postfix_evaluator_unittest_DEPENDENCIES =  \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.o \
@@ -389,17 +390,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
  @DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1) \
  @DISABLE_PROCESSOR_FALSE@	$(am__DEPENDENCIES_1)
  am__src_processor_range_map_unittest_SOURCES_DIST =  \
  	src/processor/range_map_unittest.cc
  @DISABLE_PROCESSOR_FALSE@am_src_processor_range_map_unittest_OBJECTS = src/processor/range_map_unittest.$(OBJEXT)
  src_processor_range_map_unittest_OBJECTS =  \
-@@ -1058,33 +1069,35 @@
+@@ -1069,33 +1080,35 @@
  src_tools_linux_core2md_core2md_OBJECTS =  \
  	$(am_src_tools_linux_core2md_core2md_OBJECTS)
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_core2md_core2md_DEPENDENCIES = src/client/linux/libbreakpad_client.a
  am__src_tools_linux_dump_syms_dump_syms_SOURCES_DIST =  \
  	src/common/dwarf_cfi_to_module.cc \
  	src/common/dwarf_cu_to_module.cc \
  	src/common/dwarf_line_to_module.cc src/common/language.cc \
  	src/common/module.cc src/common/stabs_reader.cc \
@@ -426,17 +427,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/bytereader.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2diehandler.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2reader.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dump_symbols.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/elf_symbols_to_module.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/elfutils.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/file_id.$(OBJEXT) \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/linux_libc_support.$(OBJEXT) \
-@@ -1405,16 +1418,17 @@
+@@ -1416,16 +1429,17 @@
  @DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/source_line_resolver_interface.h \
  @DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/stack_frame.h \
  @DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/stack_frame_cpu.h \
  @DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/stack_frame_symbolizer.h \
  @DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/stackwalker.h \
  @DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/symbol_supplier.h \
  @DISABLE_PROCESSOR_FALSE@	src/google_breakpad/processor/system_info.h \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.cc \
@@ -444,17 +445,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/address_map-inl.h \
  @DISABLE_PROCESSOR_FALSE@	src/processor/address_map.h \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_module.h \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.cc \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.h \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver_types.h \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.cc \
  @DISABLE_PROCESSOR_FALSE@	src/processor/binarystream.h \
-@@ -1603,16 +1617,17 @@
+@@ -1618,16 +1632,17 @@
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@src_tools_linux_dump_syms_dump_syms_SOURCES = \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_cfi_to_module.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_cu_to_module.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf_line_to_module.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/language.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/module.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_reader.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_to_module.cc \
@@ -462,17 +463,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/bytereader.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2diehandler.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2reader.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/dump_symbols.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/elf_symbols_to_module.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/elfutils.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/file_id.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/linux/linux_libc_support.cc \
-@@ -1646,16 +1661,17 @@
+@@ -1661,16 +1676,17 @@
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/memory_range_unittest.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/module.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/module_unittest.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_reader.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_reader_unittest.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_to_module.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/stabs_to_module_unittest.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/test_assembler.cc \
@@ -480,17 +481,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/bytereader.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/bytereader_unittest.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/cfi_assembler.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2diehandler.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2diehandler_unittest.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2reader.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2reader_cfi_unittest.cc \
  @DISABLE_TOOLS_FALSE@@LINUX_HOST_TRUE@	src/common/dwarf/dwarf2reader_die_unittest.cc \
-@@ -1738,32 +1754,34 @@
+@@ -1753,32 +1769,34 @@
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing/include \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing/gtest/include \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing/gtest \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing
  
  @DISABLE_PROCESSOR_FALSE@src_processor_basic_source_line_resolver_unittest_LDADD = \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.o \
@@ -515,17 +516,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
  @DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
  
  @DISABLE_PROCESSOR_FALSE@src_processor_cfi_frame_info_unittest_CPPFLAGS = \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing/include \
-@@ -1788,16 +1806,17 @@
+@@ -1803,16 +1821,17 @@
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing/include \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing/gtest/include \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing/gtest \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing
  
  @DISABLE_PROCESSOR_FALSE@src_processor_exploitability_unittest_LDADD = \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.o \
@@ -533,17 +534,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/minidump_processor.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/process_state.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
-@@ -1844,16 +1863,17 @@
+@@ -1860,16 +1879,17 @@
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing/include \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing/gtest/include \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing/gtest \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing
  
  @DISABLE_PROCESSOR_FALSE@src_processor_fast_source_line_resolver_unittest_LDADD = \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.o \
@@ -551,17 +552,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/fast_source_line_resolver.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/module_comparer.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/module_serializer.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/source_line_resolver_base.o \
-@@ -1886,16 +1906,17 @@
+@@ -1902,16 +1922,17 @@
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing/include \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing/gtest/include \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing/gtest \
  @DISABLE_PROCESSOR_FALSE@	-I$(top_srcdir)/src/testing
  
  @DISABLE_PROCESSOR_FALSE@src_processor_minidump_processor_unittest_LDADD = \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.o \
@@ -569,17 +570,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
-@@ -2012,16 +2033,17 @@
+@@ -2029,16 +2050,17 @@
  @DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
  @DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
  
  @DISABLE_PROCESSOR_FALSE@src_processor_postfix_evaluator_unittest_SOURCES = \
  @DISABLE_PROCESSOR_FALSE@	src/processor/postfix_evaluator_unittest.cc
  
  @DISABLE_PROCESSOR_FALSE@src_processor_postfix_evaluator_unittest_LDADD = \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.o \
@@ -587,17 +588,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/logging.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o \
  @DISABLE_PROCESSOR_FALSE@	$(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
  
  @DISABLE_PROCESSOR_FALSE@src_processor_range_map_unittest_SOURCES = \
  @DISABLE_PROCESSOR_FALSE@	src/processor/range_map_unittest.cc
  
  @DISABLE_PROCESSOR_FALSE@src_processor_range_map_unittest_LDADD = \
-@@ -2151,16 +2173,17 @@
+@@ -2169,16 +2191,17 @@
  @DISABLE_PROCESSOR_FALSE@	src/processor/minidump.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/pathname_stripper.o
  
  @DISABLE_PROCESSOR_FALSE@src_processor_minidump_stackwalk_SOURCES = \
  @DISABLE_PROCESSOR_FALSE@	src/processor/minidump_stackwalk.cc
  
  @DISABLE_PROCESSOR_FALSE@src_processor_minidump_stackwalk_LDADD = \
  @DISABLE_PROCESSOR_FALSE@	src/common/module.o \
@@ -605,17 +606,17 @@ diff --git a/Makefile.in b/Makefile.in
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_code_modules.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/basic_source_line_resolver.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/binarystream.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/call_stack.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/cfi_frame_info.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/disassembler_x86.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/exploitability.o \
  @DISABLE_PROCESSOR_FALSE@	src/processor/exploitability_win.o \
-@@ -2508,16 +2531,18 @@
+@@ -2527,16 +2550,18 @@
  	@$(MKDIR_P) src/client/linux
  	@: > src/client/linux/$(am__dirstamp)
  src/client/linux/libbreakpad_client.a: $(src_client_linux_libbreakpad_client_a_OBJECTS) $(src_client_linux_libbreakpad_client_a_DEPENDENCIES) $(EXTRA_src_client_linux_libbreakpad_client_a_DEPENDENCIES) src/client/linux/$(am__dirstamp)
  	-rm -f src/client/linux/libbreakpad_client.a
  	$(src_client_linux_libbreakpad_client_a_AR) src/client/linux/libbreakpad_client.a $(src_client_linux_libbreakpad_client_a_OBJECTS) $(src_client_linux_libbreakpad_client_a_LIBADD)
  	$(RANLIB) src/client/linux/libbreakpad_client.a
  src/common/module.$(OBJEXT): src/common/$(am__dirstamp) \
  	src/common/$(DEPDIR)/$(am__dirstamp)
@@ -624,17 +625,17 @@ diff --git a/Makefile.in b/Makefile.in
  src/processor/$(am__dirstamp):
  	@$(MKDIR_P) src/processor
  	@: > src/processor/$(am__dirstamp)
  src/processor/$(DEPDIR)/$(am__dirstamp):
  	@$(MKDIR_P) src/processor/$(DEPDIR)
  	@: > src/processor/$(DEPDIR)/$(am__dirstamp)
  src/processor/basic_code_modules.$(OBJEXT):  \
  	src/processor/$(am__dirstamp) \
-@@ -2835,16 +2860,19 @@
+@@ -2863,16 +2888,19 @@
  	src/common/$(am__dirstamp) \
  	src/common/$(DEPDIR)/$(am__dirstamp)
  src/common/src_common_dumper_unittest-stabs_to_module_unittest.$(OBJEXT):  \
  	src/common/$(am__dirstamp) \
  	src/common/$(DEPDIR)/$(am__dirstamp)
  src/common/src_common_dumper_unittest-test_assembler.$(OBJEXT):  \
  	src/common/$(am__dirstamp) \
  	src/common/$(DEPDIR)/$(am__dirstamp)
@@ -644,17 +645,17 @@ diff --git a/Makefile.in b/Makefile.in
  src/common/dwarf/$(am__dirstamp):
  	@$(MKDIR_P) src/common/dwarf
  	@: > src/common/dwarf/$(am__dirstamp)
  src/common/dwarf/$(DEPDIR)/$(am__dirstamp):
  	@$(MKDIR_P) src/common/dwarf/$(DEPDIR)
  	@: > src/common/dwarf/$(DEPDIR)/$(am__dirstamp)
  src/common/dwarf/src_common_dumper_unittest-bytereader.$(OBJEXT):  \
  	src/common/dwarf/$(am__dirstamp) \
-@@ -3440,28 +3468,30 @@
+@@ -3470,28 +3498,30 @@
  	-rm -f src/common/src_common_dumper_unittest-memory_range_unittest.$(OBJEXT)
  	-rm -f src/common/src_common_dumper_unittest-module.$(OBJEXT)
  	-rm -f src/common/src_common_dumper_unittest-module_unittest.$(OBJEXT)
  	-rm -f src/common/src_common_dumper_unittest-stabs_reader.$(OBJEXT)
  	-rm -f src/common/src_common_dumper_unittest-stabs_reader_unittest.$(OBJEXT)
  	-rm -f src/common/src_common_dumper_unittest-stabs_to_module.$(OBJEXT)
  	-rm -f src/common/src_common_dumper_unittest-stabs_to_module_unittest.$(OBJEXT)
  	-rm -f src/common/src_common_dumper_unittest-test_assembler.$(OBJEXT)
@@ -675,17 +676,17 @@ diff --git a/Makefile.in b/Makefile.in
  	-rm -f src/processor/address_map_unittest.$(OBJEXT)
  	-rm -f src/processor/basic_code_modules.$(OBJEXT)
  	-rm -f src/processor/basic_source_line_resolver.$(OBJEXT)
  	-rm -f src/processor/binarystream.$(OBJEXT)
  	-rm -f src/processor/call_stack.$(OBJEXT)
  	-rm -f src/processor/cfi_frame_info.$(OBJEXT)
  	-rm -f src/processor/contained_range_map_unittest.$(OBJEXT)
  	-rm -f src/processor/disassembler_x86.$(OBJEXT)
-@@ -3630,26 +3660,28 @@
+@@ -3663,26 +3693,28 @@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/src_common_dumper_unittest-memory_range_unittest.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/src_common_dumper_unittest-module.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/src_common_dumper_unittest-module_unittest.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_reader.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_reader_unittest.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_to_module.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/src_common_dumper_unittest-stabs_to_module_unittest.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/$(DEPDIR)/src_common_dumper_unittest-test_assembler.Po@am__quote@
@@ -704,17 +705,17 @@ diff --git a/Makefile.in b/Makefile.in
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/android/$(DEPDIR)/breakpad_getcontext.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/android/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/android/$(DEPDIR)/src_client_linux_linux_client_unittest_shlib-breakpad_getcontext_unittest.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/bytereader.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/dwarf2diehandler.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/dwarf2reader.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-bytereader.Po@am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote@src/common/dwarf/$(DEPDIR)/src_common_dumper_unittest-bytereader_unittest.Po@am__quote@
-@@ -4412,16 +4444,30 @@
+@@ -4474,16 +4506,30 @@
  
  src/common/src_common_dumper_unittest-test_assembler.obj: src/common/test_assembler.cc
  @am__fastdepCXX_TRUE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/common/src_common_dumper_unittest-test_assembler.obj -MD -MP -MF src/common/$(DEPDIR)/src_common_dumper_unittest-test_assembler.Tpo -c -o src/common/src_common_dumper_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
  @am__fastdepCXX_TRUE@	$(am__mv) src/common/$(DEPDIR)/src_common_dumper_unittest-test_assembler.Tpo src/common/$(DEPDIR)/src_common_dumper_unittest-test_assembler.Po
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='src/common/test_assembler.cc' object='src/common/src_common_dumper_unittest-test_assembler.obj' libtool=no @AMDEPBACKSLASH@
  @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
  @am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_common_dumper_unittest_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/common/src_common_dumper_unittest-test_assembler.obj `if test -f 'src/common/test_assembler.cc'; then $(CYGPATH_W) 'src/common/test_assembler.cc'; else $(CYGPATH_W) '$(srcdir)/src/common/test_assembler.cc'; fi`
  
@@ -1348,17 +1349,17 @@ diff --git a/src/common/dwarf_cfi_to_mod
 +  EXPECT_EQ(ToUniqueString("$rdx"), names[1]);
 +  EXPECT_EQ(ToUniqueString("$rbp"), names[6]);
 +  EXPECT_EQ(ToUniqueString("$rsp"), names[7]);
 +  EXPECT_EQ(ToUniqueString("$rip"), names[16]);
  }
 diff --git a/src/common/linux/dump_symbols.cc b/src/common/linux/dump_symbols.cc
 --- a/src/common/linux/dump_symbols.cc
 +++ b/src/common/linux/dump_symbols.cc
-@@ -80,16 +80,17 @@
+@@ -81,16 +81,17 @@
  using google_breakpad::ElfClass64;
  using google_breakpad::FindElfSectionByName;
  using google_breakpad::GetOffset;
  using google_breakpad::IsValidElf;
  using google_breakpad::Module;
  #ifndef NO_STABS_SUPPORT
  using google_breakpad::StabsToModule;
  #endif
@@ -1366,17 +1367,17 @@ diff --git a/src/common/linux/dump_symbo
  using google_breakpad::scoped_ptr;
  
  //
  // FDWrapper
  //
  // Wrapper class to make sure opened file is closed.
  //
  class FDWrapper {
-@@ -270,17 +271,17 @@
+@@ -278,17 +279,17 @@
  
  // Fill REGISTER_NAMES with the register names appropriate to the
  // machine architecture given in HEADER, indexed by the register
  // numbers used in DWARF call frame information. Return true on
  // success, or false if HEADER's machine architecture is not
  // supported.
  template<typename ElfClass>
  bool DwarfCFIRegisterNames(const typename ElfClass::Ehdr* elf_header,
@@ -1385,17 +1386,17 @@ diff --git a/src/common/linux/dump_symbo
    switch (elf_header->e_machine) {
      case EM_386:
        *register_names = DwarfCFIToModule::RegisterNames::I386();
        return true;
      case EM_ARM:
        *register_names = DwarfCFIToModule::RegisterNames::ARM();
        return true;
      case EM_X86_64:
-@@ -298,17 +299,17 @@
+@@ -306,17 +307,17 @@
                    const typename ElfClass::Shdr* section,
                    const bool eh_frame,
                    const typename ElfClass::Shdr* got_section,
                    const typename ElfClass::Shdr* text_section,
                    const bool big_endian,
                    Module* module) {
    // Find the appropriate set of register names for this file's
    // architecture.
@@ -1407,17 +1408,17 @@ diff --git a/src/common/linux/dump_symbo
              dwarf_filename.c_str(), elf_header->e_machine);
      return false;
    }
  
    const dwarf2reader::Endianness endianness = big_endian ?
 diff --git a/src/common/mac/dump_syms.mm b/src/common/mac/dump_syms.mm
 --- a/src/common/mac/dump_syms.mm
 +++ b/src/common/mac/dump_syms.mm
-@@ -305,17 +305,17 @@
+@@ -313,17 +313,17 @@
  }
  
  bool DumpSymbols::ReadCFI(google_breakpad::Module *module,
                            const mach_o::Reader &macho_reader,
                            const mach_o::Section &section,
                            bool eh_frame) const {
    // Find the appropriate set of register names for this file's
    // architecture.
@@ -1447,17 +1448,34 @@ diff --git a/src/common/module.cc b/src/
  #include <iostream>
  #include <utility>
  
  namespace google_breakpad {
  
  using std::dec;
  using std::endl;
  using std::hex;
-@@ -270,21 +271,35 @@
+@@ -255,36 +256,50 @@
+           strerror(errno));
+   return false;
+ }
+ 
+ std::ostream& operator<<(std::ostream& stream, const Module::Expr& expr) {
+   assert(!expr.invalid());
+   switch (expr.how_) {
+     case Module::kExprSimple:
+-      stream << expr.ident_ << " " << expr.offset_ << " +";
++      stream << FromUniqueString(expr.ident_) << " " << expr.offset_ << " +";
+       break;
+     case Module::kExprSimpleMem:
+-      stream << expr.ident_ << " " << expr.offset_ << " + ^";
++      stream << FromUniqueString(expr.ident_) << " " << expr.offset_ << " + ^";
+       break;
+     case Module::kExprPostfix:
+       stream << expr.postfix_; break;
      case Module::kExprInvalid:
      default:
        break;
    }
    return stream;
  }
  
  bool Module::WriteRuleMap(const RuleMap &rule_map, std::ostream &stream) {
@@ -1605,46 +1623,71 @@ diff --git a/src/common/module_unittest.
  using std::stringstream;
  using std::vector;
  using testing::ContainerEq;
  
  static Module::Function *generate_duplicate_function(const string &name) {
    const Module::Address DUP_ADDRESS = 0xd35402aac7a7ad5cLL;
    const Module::Address DUP_SIZE = 0x200b26e605f99071LL;
    const Module::Address DUP_PARAMETER_SIZE = 0xf14ac4fed48c4a99LL;
-@@ -125,21 +127,23 @@
+@@ -125,21 +127,27 @@
    function->lines.push_back(line1);
  
    m.AddFunction(function);
  
    // Some stack information.
    Module::StackFrameEntry *entry = new Module::StackFrameEntry();
    entry->address = 0x30f9e5c83323973dULL;
    entry->size = 0x49fc9ca7c7c13dc2ULL;
 -  entry->initial_rules[".cfa"] = Module::Expr("he was a handsome man");
 -  entry->initial_rules["and"] = Module::Expr("what i want to know is");
 -  entry->rule_changes[0x30f9e5c83323973eULL]["how"] =
 -    Module::Expr("do you like your blueeyed boy");
 -  entry->rule_changes[0x30f9e5c83323973eULL]["Mister"] = Module::Expr("Death");
 +  entry->initial_rules[ustr__ZDcfa()] = Module::Expr("he was a handsome man");
 +  entry->initial_rules[ToUniqueString("and")] =
 +      Module::Expr("what i want to know is");
++  entry->initial_rules[ToUniqueString("stallion")] =
++      Module::Expr(ToUniqueString("and break"), 8, false);
++  entry->initial_rules[ToUniqueString("onetwothreefourfive")] =
++      Module::Expr(ToUniqueString("pigeonsjustlikethat"), 42, true);
 +  entry->rule_changes[0x30f9e5c83323973eULL][ToUniqueString("how")] =
 +      Module::Expr("do you like your blueeyed boy");
 +  entry->rule_changes[0x30f9e5c83323973eULL][ToUniqueString("Mister")] =
 +      Module::Expr("Death");
    m.AddStackFrameEntry(entry);
  
    // Set the load address.  Doing this after adding all the data to
    // the module must work fine.
    m.SetLoadAddress(0x2ab698b0b6407073LL);
  
    m.Write(s, ALL_SYMBOL_DATA);
    string contents = s.str();
-@@ -229,21 +233,23 @@
+@@ -147,17 +155,19 @@
+                "FILE 0 filename-a.cc\n"
+                "FILE 1 filename-b.cc\n"
+                "FUNC 9410dc39a798c580 2922088f98d3f6fc e5e9aa008bd5f0d0"
+                " A_FLIBBERTIJIBBET::a_will_o_the_wisp(a clown)\n"
+                "b03cc3106d47eb91 cf621b8d324d0eb 67519080 0\n"
+                "9410dc39a798c580 1c2be6d6c5af2611 41676901 1\n"
+                "STACK CFI INIT 6434d177ce326ca 49fc9ca7c7c13dc2"
+                " .cfa: he was a handsome man"
+-               " and: what i want to know is\n"
++               " and: what i want to know is"
++               " onetwothreefourfive: pigeonsjustlikethat 42 + ^"
++               " stallion: and break 8 +\n"
+                "STACK CFI 6434d177ce326cb"
+                " Mister: Death"
+                " how: do you like your blueeyed boy\n",
+                contents.c_str());
+ }
+ 
+ TEST(Write, OmitUnusedFiles) {
+   Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);
+@@ -229,21 +239,23 @@
    function->lines.push_back(line1);
  
    m.AddFunction(function);
  
    // Some stack information.
    Module::StackFrameEntry *entry = new Module::StackFrameEntry();
    entry->address = 0x30f9e5c83323973dULL;
    entry->size = 0x49fc9ca7c7c13dc2ULL;
@@ -1663,17 +1706,17 @@ diff --git a/src/common/module_unittest.
    m.AddStackFrameEntry(entry);
  
    // Set the load address.  Doing this after adding all the data to
    // the module must work fine.
    m.SetLoadAddress(0x2ab698b0b6407073LL);
  
    m.Write(s, NO_CFI);
    string contents = s.str();
-@@ -305,33 +311,36 @@
+@@ -305,33 +317,36 @@
    entry1->address = 0xddb5f41285aa7757ULL;
    entry1->size = 0x1486493370dc5073ULL;
    m.AddStackFrameEntry(entry1);
  
    // Second STACK CFI entry, with initial rules but no deltas.
    Module::StackFrameEntry *entry2 = new Module::StackFrameEntry();
    entry2->address = 0x8064f3af5e067e38ULL;
    entry2->size = 0x0de2a5ee55509407ULL;
@@ -1708,17 +1751,17 @@ diff --git a/src/common/module_unittest.
      Module::Expr("I think I know");
    m.AddStackFrameEntry(entry3);
  
    // Check that Write writes STACK CFI records properly.
    m.Write(s, ALL_SYMBOL_DATA);
    string contents = s.str();
    EXPECT_STREQ("MODULE os-name architecture id-string name with spaces\n"
                 "STACK CFI INIT 5e8d0db0a7075c6c 1c7edb12a7aea229"
-@@ -352,33 +361,39 @@
+@@ -352,33 +367,39 @@
    // Check that GetStackFrameEntries works.
    vector<Module::StackFrameEntry *> entries;
    m.GetStackFrameEntries(&entries);
    ASSERT_EQ(3U, entries.size());
    // Check first entry.
    EXPECT_EQ(0x5e8d0db0a7075c6cULL, entries[0]->address);
    EXPECT_EQ(0x1c7edb12a7aea229ULL, entries[0]->size);
    Module::RuleMap entry1_initial;
@@ -1757,17 +1800,17 @@ diff --git a/src/common/module_unittest.
    EXPECT_THAT(entries[1]->initial_rules, ContainerEq(entry2_initial));
    ASSERT_EQ(0U, entries[1]->rule_changes.size());
    // Check third entry.
    EXPECT_EQ(0xddb5f41285aa7757ULL, entries[2]->address);
    EXPECT_EQ(0x1486493370dc5073ULL, entries[2]->size);
    ASSERT_EQ(0U, entries[2]->initial_rules.size());
    ASSERT_EQ(0U, entries[2]->rule_changes.size());
  }
-@@ -585,33 +600,36 @@
+@@ -585,33 +606,36 @@
    entry1->address = 0x2000;
    entry1->size = 0x900;
    m.AddStackFrameEntry(entry1);
  
    // Second STACK CFI entry, with initial rules but no deltas.
    Module::StackFrameEntry *entry2 = new Module::StackFrameEntry();
    entry2->address = 0x3000;
    entry2->size = 0x900;
@@ -3923,17 +3966,17 @@ diff --git a/src/processor/postfix_evalu
    return true;
  }
  
  
  }  // namespace
 diff --git a/src/processor/stackwalker_amd64.cc b/src/processor/stackwalker_amd64.cc
 --- a/src/processor/stackwalker_amd64.cc
 +++ b/src/processor/stackwalker_amd64.cc
-@@ -49,49 +49,49 @@
+@@ -50,49 +50,49 @@
  
  const StackwalkerAMD64::CFIWalker::RegisterSet
  StackwalkerAMD64::cfi_register_map_[] = {
    // It may seem like $rip and $rsp are callee-saves, because the callee is
    // responsible for having them restored upon return. But the callee_saves
    // flags here really means that the walker should assume they're
    // unchanged if the CFI doesn't mention them --- clearly wrong for $rip
    // and $rsp.
--- a/toolkit/crashreporter/google-breakpad/src/common/module.cc
+++ b/toolkit/crashreporter/google-breakpad/src/common/module.cc
@@ -256,20 +256,20 @@ bool Module::ReportError() {
           strerror(errno));
   return false;
 }
 
 std::ostream& operator<<(std::ostream& stream, const Module::Expr& expr) {
   assert(!expr.invalid());
   switch (expr.how_) {
     case Module::kExprSimple:
-      stream << expr.ident_ << " " << expr.offset_ << " +";
+      stream << FromUniqueString(expr.ident_) << " " << expr.offset_ << " +";
       break;
     case Module::kExprSimpleMem:
-      stream << expr.ident_ << " " << expr.offset_ << " + ^";
+      stream << FromUniqueString(expr.ident_) << " " << expr.offset_ << " + ^";
       break;
     case Module::kExprPostfix:
       stream << expr.postfix_; break;
     case Module::kExprInvalid:
     default:
       break;
   }
   return stream;
--- a/toolkit/crashreporter/google-breakpad/src/common/module_unittest.cc
+++ b/toolkit/crashreporter/google-breakpad/src/common/module_unittest.cc
@@ -130,16 +130,20 @@ TEST(Write, RelativeLoadAddress) {
 
   // Some stack information.
   Module::StackFrameEntry *entry = new Module::StackFrameEntry();
   entry->address = 0x30f9e5c83323973dULL;
   entry->size = 0x49fc9ca7c7c13dc2ULL;
   entry->initial_rules[ustr__ZDcfa()] = Module::Expr("he was a handsome man");
   entry->initial_rules[ToUniqueString("and")] =
       Module::Expr("what i want to know is");
+  entry->initial_rules[ToUniqueString("stallion")] =
+      Module::Expr(ToUniqueString("and break"), 8, false);
+  entry->initial_rules[ToUniqueString("onetwothreefourfive")] =
+      Module::Expr(ToUniqueString("pigeonsjustlikethat"), 42, true);
   entry->rule_changes[0x30f9e5c83323973eULL][ToUniqueString("how")] =
       Module::Expr("do you like your blueeyed boy");
   entry->rule_changes[0x30f9e5c83323973eULL][ToUniqueString("Mister")] =
       Module::Expr("Death");
   m.AddStackFrameEntry(entry);
 
   // Set the load address.  Doing this after adding all the data to
   // the module must work fine.
@@ -151,17 +155,19 @@ TEST(Write, RelativeLoadAddress) {
                "FILE 0 filename-a.cc\n"
                "FILE 1 filename-b.cc\n"
                "FUNC 9410dc39a798c580 2922088f98d3f6fc e5e9aa008bd5f0d0"
                " A_FLIBBERTIJIBBET::a_will_o_the_wisp(a clown)\n"
                "b03cc3106d47eb91 cf621b8d324d0eb 67519080 0\n"
                "9410dc39a798c580 1c2be6d6c5af2611 41676901 1\n"
                "STACK CFI INIT 6434d177ce326ca 49fc9ca7c7c13dc2"
                " .cfa: he was a handsome man"
-               " and: what i want to know is\n"
+               " and: what i want to know is"
+               " onetwothreefourfive: pigeonsjustlikethat 42 + ^"
+               " stallion: and break 8 +\n"
                "STACK CFI 6434d177ce326cb"
                " Mister: Death"
                " how: do you like your blueeyed boy\n",
                contents.c_str());
 }
 
 TEST(Write, OmitUnusedFiles) {
   Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID);