Module API (#32). r=waylonis, bryner
- Introduces a standard API for dealing with modules. MinidumpModule
is now a concrete implementation of this API. Code may interact with
single modules using the CodeModule interface, and collections of
modules using its container, the CodeModules interface.
- CodeModule is used directly by SymbolSupplier implementations and
SourceLineResolver. Reliance on the specific implementation in
MinidumpModule has been eliminated.
- Module lists are now added to ProcessState objects. Module references
in each stack frame are now pointers to objects in these module lists.
- The sample minidump_stackwalk tool prints the module list after printing
all threads' stacks.
http://groups.google.com/group/airbag-dev/browse_frm/thread/a9c0550edde54cf8
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@74 4c0a9323-5329-0410-9bdc-e9ce6186880e
diff --git a/Makefile.am b/Makefile.am
index 7a85e1e..6f1ca84 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -53,6 +53,8 @@
src/google_airbag/common/airbag_types.h \
src/google_airbag/common/minidump_format.h \
src/google_airbag/processor/call_stack.h \
+ src/google_airbag/processor/code_module.h \
+ src/google_airbag/processor/code_modules.h \
src/google_airbag/processor/memory_region.h \
src/google_airbag/processor/minidump.h \
src/google_airbag/processor/minidump_processor.h \
@@ -63,6 +65,9 @@
src/google_airbag/processor/symbol_supplier.h \
src/processor/address_map.h \
src/processor/address_map-inl.h \
+ src/processor/basic_code_module.h \
+ src/processor/basic_code_modules.cc \
+ src/processor/basic_code_modules.h \
src/processor/call_stack.cc \
src/processor/contained_range_map.h \
src/processor/contained_range_map-inl.h \
@@ -126,6 +131,7 @@
src_processor_minidump_processor_unittest_SOURCES = \
src/processor/minidump_processor_unittest.cc
src_processor_minidump_processor_unittest_LDADD = \
+ src/processor/basic_code_modules.lo \
src/processor/call_stack.lo \
src/processor/minidump_processor.lo \
src/processor/minidump.lo \
@@ -154,6 +160,7 @@
src_processor_stackwalker_selftest_SOURCES = \
src/processor/stackwalker_selftest.cc
src_processor_stackwalker_selftest_LDADD = \
+ src/processor/basic_code_modules.lo \
src/processor/call_stack.lo \
src/processor/minidump.lo \
src/processor/source_line_resolver.lo \
@@ -168,11 +175,13 @@
src_processor_minidump_dump_SOURCES = \
src/processor/minidump_dump.cc
src_processor_minidump_dump_LDADD = \
+ src/processor/basic_code_modules.lo \
src/processor/minidump.lo
src_processor_minidump_stackwalk_SOURCES = \
src/processor/minidump_stackwalk.cc
src_processor_minidump_stackwalk_LDADD = \
+ src/processor/basic_code_modules.lo \
src/processor/call_stack.lo \
src/processor/minidump.lo \
src/processor/minidump_processor.lo \
@@ -186,16 +195,44 @@
## Additional files to be included in a source distribution
+##
+## find src/client src/common src/processor/testdata src/tools \
+## -type f \! -wholename '*/.svn*' -print | sort
EXTRA_DIST = \
$(SCRIPTS) \
- src/processor/testdata/minidump1.dmp \
- src/processor/testdata/minidump1.out \
- src/processor/testdata/minidump1.stack.out \
+ src/client/minidump_file_writer.cc \
+ src/client/minidump_file_writer.h \
+ src/client/minidump_file_writer-inl.h \
+ src/client/windows/airbag_client.sln \
+ src/client/windows/handler/exception_handler.cc \
+ src/client/windows/handler/exception_handler.h \
+ src/client/windows/handler/exception_handler.vcproj \
+ src/client/windows/sender/crash_report_sender.cc \
+ src/client/windows/sender/crash_report_sender.h \
+ src/client/windows/sender/crash_report_sender.vcproj \
+ src/common/windows/guid_string.cc \
+ src/common/windows/guid_string.h \
+ src/common/windows/http_upload.cc \
+ src/common/windows/http_upload.h \
+ src/common/windows/pdb_source_line_writer.cc \
+ src/common/windows/pdb_source_line_writer.h \
+ src/common/windows/string_utils-inl.h \
src/processor/testdata/minidump2.dmp \
- src/processor/testdata/minidump2.sym \
+ src/processor/testdata/minidump2.dump.out \
+ src/processor/testdata/minidump2.stackwalk.out \
src/processor/testdata/module1.out \
src/processor/testdata/module2.out \
- src/processor/testdata/module3_bad.out
+ src/processor/testdata/module3_bad.out \
+ src/processor/testdata/symbols/kernel32.pdb/BCE8785C57B44245A669896B6A19B9542/kernel32.sym \
+ src/processor/testdata/symbols/test_app.pdb/8DDB7E9A365748938D6EB08B1DCA31AA1/test_app.sym \
+ src/processor/testdata/test_app.cc \
+ src/tools/windows/dump_syms/dump_syms.cc \
+ src/tools/windows/dump_syms/dump_syms.vcproj \
+ src/tools/windows/dump_syms/run_regtest.sh \
+ src/tools/windows/dump_syms/testdata/dump_syms_regtest.out \
+ src/tools/windows/dump_syms/testdata/dump_syms_regtest.pdb \
+ src/tools/windows/symupload/symupload.cc \
+ src/tools/windows/symupload/symupload.vcproj
## Additional rules