From 70e12562b84d3b8c66e44d284c7fc90ab37f6d4d Mon Sep 17 00:00:00 2001 From: bryner Date: Fri, 1 Sep 2006 19:34:00 +0000 Subject: Adding a CrashReport struct, r=mmentovai. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@9 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/google/crash_report.h | 86 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 src/google/crash_report.h (limited to 'src/google/crash_report.h') diff --git a/src/google/crash_report.h b/src/google/crash_report.h new file mode 100644 index 00000000..dd4bc916 --- /dev/null +++ b/src/google/crash_report.h @@ -0,0 +1,86 @@ +// 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 _CRASH_REPORT_H__ +#define _CRASH_REPORT_H__ + +#include +#include +#include "airbag_types.h" +#include "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. + u_int64_t report_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 // _CRASH_REPORT_H__ -- cgit v1.2.1