Handle frame pointer omission, (#21), part 4 (final part!): FPO stackwalker.
r=bryner
- This change allows Airbag to properly walk win32 stacks produced by code
built with MSVC's frame pointer omission optimization (/Oy). This
optimization is enabled at /O1 and /O2.
- There too many interface and file format changes to list here.
http://groups.google.com/group/airbag-dev/browse_thread/thread/85ce85bfa8457ece
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@42 4c0a9323-5329-0410-9bdc-e9ce6186880e
diff --git a/Makefile.in b/Makefile.in
index 72572d6..fd15374 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -108,8 +108,8 @@
LTLIBRARIES = $(lib_LTLIBRARIES)
src_libairbag_la_LIBADD =
am__dirstamp = $(am__leading_dot)dirstamp
-am_src_libairbag_la_OBJECTS = src/processor/minidump.lo \
- src/processor/minidump_processor.lo \
+am_src_libairbag_la_OBJECTS = src/processor/call_stack.lo \
+ src/processor/minidump.lo src/processor/minidump_processor.lo \
src/processor/source_line_resolver.lo \
src/processor/stackwalker.lo src/processor/stackwalker_ppc.lo \
src/processor/stackwalker_x86.lo
@@ -133,6 +133,7 @@
src_processor_minidump_processor_unittest_OBJECTS = \
$(am_src_processor_minidump_processor_unittest_OBJECTS)
src_processor_minidump_processor_unittest_DEPENDENCIES = \
+ src/processor/call_stack.lo \
src/processor/minidump_processor.lo src/processor/minidump.lo \
src/processor/stackwalker.lo src/processor/stackwalker_ppc.lo \
src/processor/stackwalker_x86.lo \
@@ -142,8 +143,8 @@
src_processor_minidump_stackwalk_OBJECTS = \
$(am_src_processor_minidump_stackwalk_OBJECTS)
src_processor_minidump_stackwalk_DEPENDENCIES = \
- src/processor/minidump.lo src/processor/stackwalker.lo \
- src/processor/stackwalker_ppc.lo \
+ src/processor/call_stack.lo src/processor/minidump.lo \
+ src/processor/stackwalker.lo src/processor/stackwalker_ppc.lo \
src/processor/stackwalker_x86.lo \
src/processor/source_line_resolver.lo
am_src_processor_postfix_evaluator_unittest_OBJECTS = \
@@ -167,7 +168,7 @@
src_processor_stackwalker_selftest_OBJECTS = \
$(am_src_processor_stackwalker_selftest_OBJECTS)
src_processor_stackwalker_selftest_DEPENDENCIES = \
- src/processor/minidump.lo \
+ src/processor/call_stack.lo src/processor/minidump.lo \
src/processor/source_line_resolver.lo \
src/processor/stackwalker.lo src/processor/stackwalker_ppc.lo \
src/processor/stackwalker_x86.lo
@@ -342,9 +343,12 @@
lib_LTLIBRARIES = src/libairbag.la
src_libairbag_la_SOURCES = \
src/google/airbag_types.h \
+ src/google/call_stack.h \
src/google/minidump_processor.h \
src/google/stack_frame.h \
+ src/google/stack_frame_cpu.h \
src/google/symbol_supplier.h \
+ src/processor/call_stack.cc \
src/processor/contained_range_map.h \
src/processor/contained_range_map-inl.h \
src/processor/linked_ptr.h \
@@ -380,6 +384,7 @@
src/processor/minidump_processor_unittest.cc
src_processor_minidump_processor_unittest_LDADD = \
+ src/processor/call_stack.lo \
src/processor/minidump_processor.lo \
src/processor/minidump.lo \
src/processor/stackwalker.lo \
@@ -403,6 +408,7 @@
src/processor/stackwalker_selftest.cc
src_processor_stackwalker_selftest_LDADD = \
+ src/processor/call_stack.lo \
src/processor/minidump.lo \
src/processor/source_line_resolver.lo \
src/processor/stackwalker.lo \
@@ -420,6 +426,7 @@
src/processor/minidump_stackwalk.cc
src_processor_minidump_stackwalk_LDADD = \
+ src/processor/call_stack.lo \
src/processor/minidump.lo \
src/processor/stackwalker.lo \
src/processor/stackwalker_ppc.lo \
@@ -524,6 +531,8 @@
src/processor/$(DEPDIR)/$(am__dirstamp):
@$(mkdir_p) src/processor/$(DEPDIR)
@: > src/processor/$(DEPDIR)/$(am__dirstamp)
+src/processor/call_stack.lo: src/processor/$(am__dirstamp) \
+ src/processor/$(DEPDIR)/$(am__dirstamp)
src/processor/minidump.lo: src/processor/$(am__dirstamp) \
src/processor/$(DEPDIR)/$(am__dirstamp)
src/processor/minidump_processor.lo: src/processor/$(am__dirstamp) \
@@ -633,6 +642,8 @@
mostlyclean-compile:
-rm -f *.$(OBJEXT)
+ -rm -f src/processor/call_stack.$(OBJEXT)
+ -rm -f src/processor/call_stack.lo
-rm -f src/processor/contained_range_map_unittest.$(OBJEXT)
-rm -f src/processor/minidump.$(OBJEXT)
-rm -f src/processor/minidump.lo
@@ -657,6 +668,7 @@
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/call_stack.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/contained_range_map_unittest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/minidump.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/processor/$(DEPDIR)/minidump_dump.Po@am__quote@