diff options
author | bryner <bryner@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2006-09-08 02:35:53 +0000 |
---|---|---|
committer | bryner <bryner@4c0a9323-5329-0410-9bdc-e9ce6186880e> | 2006-09-08 02:35:53 +0000 |
commit | d5e66382d10b1570d75e924410d58b47857fe799 (patch) | |
tree | 631ca22ac3409363ae8418c7bc846d9e198bed9f /src/google | |
parent | Make SourceLineResolver fill a StackFrame rather than using its own struct (#... (diff) | |
download | breakpad-d5e66382d10b1570d75e924410d58b47857fe799.tar.xz |
Add support to the StackWalker for resolving symbols, using a
caller-implemented SymbolSupplier object to get a symbol file.
Add a CrashReportProcessor object which provides a simple API for processing
a CrashReport struct, given a SymbolSupplier and a minidump file.
r=mmentovai (#17))
git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@18 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/google')
-rw-r--r-- | src/google/crash_report_processor.h | 44 | ||||
-rw-r--r-- | src/google/symbol_supplier.h | 41 |
2 files changed, 85 insertions, 0 deletions
diff --git a/src/google/crash_report_processor.h b/src/google/crash_report_processor.h new file mode 100644 index 00000000..161bc8cc --- /dev/null +++ b/src/google/crash_report_processor.h @@ -0,0 +1,44 @@ +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef GOOGLE_CRASH_REPORT_PROCESSOR_H__ +#define GOOGLE_CRASH_REPORT_PROCESSOR_H__ + +#include <string> + +namespace google_airbag { + +using std::string; + +struct CrashReport; +class SymbolSupplier; + +class CrashReportProcessor { + public: + // Initializes this CrashReportProcessor. supplier should be an + // implementation of the SymbolSupplier abstract base class. + CrashReportProcessor(SymbolSupplier *supplier); + ~CrashReportProcessor(); + + // Fills in the stack and other derived data for the CrashReport, + // using the supplied minidump file. Returns true on success. + bool ProcessReport(CrashReport *report, const string &minidump_file); + + private: + SymbolSupplier *supplier_; +}; + +} // namespace google_airbag + +#endif // GOOGLE_CRASH_REPORT_PROCESSOR_H__ diff --git a/src/google/symbol_supplier.h b/src/google/symbol_supplier.h new file mode 100644 index 00000000..279e99f2 --- /dev/null +++ b/src/google/symbol_supplier.h @@ -0,0 +1,41 @@ +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// The caller may implement the SymbolSupplier abstract base class +// to provide symbols for a given module. + +#ifndef GOOGLE_SYMBOL_SUPPLIER_H__ +#define GOOGLE_SYMBOL_SUPPLIER_H__ + +#include <string> + +namespace google_airbag { + +using std::string; +class MinidumpModule; +struct CrashReport; + +class SymbolSupplier { + public: + virtual ~SymbolSupplier() {} + + // Returns the path to the symbol file for the given module. + // report will be the pointer supplied to ProcessReport(). + virtual string GetSymbolFile(MinidumpModule *module, + const CrashReport *report) = 0; +}; + +} // namespace google_airbag + +#endif // GOOGLE_SYMBOL_SUPPLIER_H__ |