From cce3492afc263be86236600d41dca40be7224ee7 Mon Sep 17 00:00:00 2001 From: bryner Date: Tue, 19 Sep 2006 21:58:41 +0000 Subject: Get rid of CrashReport, and rename CrashReportProcessor to MinidumpProcessor (#26) r=mmentovai. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@26 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/google/crash_report.h | 89 ------------------------------------- src/google/crash_report_processor.h | 44 ------------------ src/google/minidump_processor.h | 46 +++++++++++++++++++ src/google/symbol_supplier.h | 5 +-- 4 files changed, 48 insertions(+), 136 deletions(-) delete mode 100644 src/google/crash_report.h delete mode 100644 src/google/crash_report_processor.h create mode 100644 src/google/minidump_processor.h (limited to 'src/google') diff --git a/src/google/crash_report.h b/src/google/crash_report.h deleted file mode 100644 index 22937538..00000000 --- a/src/google/crash_report.h +++ /dev/null @@ -1,89 +0,0 @@ -// 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. - -// CrashReport encapsulates all of the information for a single report, -// including data sent with the report and data derived by the minidump -// processor (stack trace, etc.). - -#ifndef GOOGLE_CRASH_REPORT_H__ -#define GOOGLE_CRASH_REPORT_H__ - -#include -#include -#include "google/airbag_types.h" -#include "google/stack_frame.h" - -namespace google_airbag { - -using std::vector; -using std::string; - -struct CrashReport { - // An optional id for the report. This is supplied by the caller - // and is not used by airbag. - string report_id; - - // An optional id which identifies the client that generated the report. - string client_id; - - // The time that the report was uploaded (milliseconds since the epoch) - airbag_time_t report_time; - - // The uptime of the process before it crashed - airbag_time_t process_uptime; - - // The cumulative uptime of the application for this user - airbag_time_t cumulative_product_uptime; - - // The user's email address, if they provided it - string user_email; - - // Extra comments the user provided, e.g. steps to reproduce the crash - string user_comments; - - // The product which sent this report - struct Product { - string name; - string version; - }; - Product product; - - // The user's operating system - struct OS { - string name; - string version; - }; - OS os; - - // The user's CPU architecture (x86, PowerPC, x86_64, ...) - string cpu_arch; - - // Extra product-specific key/value pairs - struct ProductData { - string key; - string value; - }; - vector product_data; - - // The stack frames for the crashed thread, top-first.m - // TODO(bryner): accommodate multiple threads - StackFrames stack_frames; - - // The stack trace "signature", which can be used for matching up reports - string stack_signature; -}; - -} // namespace google_airbag - -#endif // GOOGLE_CRASH_REPORT_H__ diff --git a/src/google/crash_report_processor.h b/src/google/crash_report_processor.h deleted file mode 100644 index 161bc8cc..00000000 --- a/src/google/crash_report_processor.h +++ /dev/null @@ -1,44 +0,0 @@ -// 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 - -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/minidump_processor.h b/src/google/minidump_processor.h new file mode 100644 index 00000000..9c80ee4e --- /dev/null +++ b/src/google/minidump_processor.h @@ -0,0 +1,46 @@ +// 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_MINIDUMP_PROCESSOR_H__ +#define GOOGLE_MINIDUMP_PROCESSOR_H__ + +#include +#include "google/stack_frame.h" + +namespace google_airbag { + +using std::string; + +class SymbolSupplier; + +class MinidumpProcessor { + public: + // Initializes this MinidumpProcessor. supplier should be an + // implementation of the SymbolSupplier abstract base class. + MinidumpProcessor(SymbolSupplier *supplier); + ~MinidumpProcessor(); + + // Fills in the given StackFrames vector by processing the minidump file. + // supplier_data is an opaque pointer which is passed to + // SymbolSupplier::GetSymbolFile(). Returns true on success. + bool Process(const string &minidump_file, void *supplier_data, + StackFrames *stack_frames); + + private: + SymbolSupplier *supplier_; +}; + +} // namespace google_airbag + +#endif // GOOGLE_MINIDUMP_PROCESSOR_H__ diff --git a/src/google/symbol_supplier.h b/src/google/symbol_supplier.h index 279e99f2..f0a6e39c 100644 --- a/src/google/symbol_supplier.h +++ b/src/google/symbol_supplier.h @@ -24,16 +24,15 @@ 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(). + // supplier_data is passed through from MinidumpProcessor::Process(). virtual string GetSymbolFile(MinidumpModule *module, - const CrashReport *report) = 0; + void *supplier_data) = 0; }; } // namespace google_airbag -- cgit v1.2.1