aboutsummaryrefslogtreecommitdiff
path: root/src/google/crash_report.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/google/crash_report.h')
-rw-r--r--src/google/crash_report.h86
1 files changed, 86 insertions, 0 deletions
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 <vector>
+#include <string>
+#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<ProductData> 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__