aboutsummaryrefslogtreecommitdiff
path: root/src/google_breakpad/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/google_breakpad/common')
-rw-r--r--src/google_breakpad/common/breakpad_types.h5
-rw-r--r--src/google_breakpad/common/minidump_cpu_amd64.h5
-rw-r--r--src/google_breakpad/common/minidump_cpu_arm.h5
-rw-r--r--src/google_breakpad/common/minidump_cpu_arm64.h5
-rw-r--r--src/google_breakpad/common/minidump_cpu_mips.h5
-rw-r--r--src/google_breakpad/common/minidump_cpu_ppc.h5
-rw-r--r--src/google_breakpad/common/minidump_cpu_ppc64.h5
-rw-r--r--src/google_breakpad/common/minidump_cpu_riscv.h168
-rw-r--r--src/google_breakpad/common/minidump_cpu_sparc.h5
-rw-r--r--src/google_breakpad/common/minidump_cpu_x86.h5
-rw-r--r--src/google_breakpad/common/minidump_exception_fuchsia.h5
-rw-r--r--src/google_breakpad/common/minidump_exception_linux.h5
-rw-r--r--src/google_breakpad/common/minidump_exception_mac.h13
-rw-r--r--src/google_breakpad/common/minidump_exception_ps3.h5
-rw-r--r--src/google_breakpad/common/minidump_exception_solaris.h5
-rw-r--r--src/google_breakpad/common/minidump_exception_win32.h78
-rw-r--r--src/google_breakpad/common/minidump_format.h49
-rw-r--r--src/google_breakpad/common/minidump_size.h5
18 files changed, 325 insertions, 53 deletions
diff --git a/src/google_breakpad/common/breakpad_types.h b/src/google_breakpad/common/breakpad_types.h
index d8828043..efd94e9d 100644
--- a/src/google_breakpad/common/breakpad_types.h
+++ b/src/google_breakpad/common/breakpad_types.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
+/* Copyright 2006 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
diff --git a/src/google_breakpad/common/minidump_cpu_amd64.h b/src/google_breakpad/common/minidump_cpu_amd64.h
index 4256706d..308f21ec 100644
--- a/src/google_breakpad/common/minidump_cpu_amd64.h
+++ b/src/google_breakpad/common/minidump_cpu_amd64.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
+/* Copyright 2006 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
diff --git a/src/google_breakpad/common/minidump_cpu_arm.h b/src/google_breakpad/common/minidump_cpu_arm.h
index 6a711383..2ac0623e 100644
--- a/src/google_breakpad/common/minidump_cpu_arm.h
+++ b/src/google_breakpad/common/minidump_cpu_arm.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2009, Google Inc.
- * All rights reserved.
+/* Copyright 2009 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
diff --git a/src/google_breakpad/common/minidump_cpu_arm64.h b/src/google_breakpad/common/minidump_cpu_arm64.h
index 0411bebb..96f26332 100644
--- a/src/google_breakpad/common/minidump_cpu_arm64.h
+++ b/src/google_breakpad/common/minidump_cpu_arm64.h
@@ -1,5 +1,4 @@
-/* Copyright 2013 Google Inc.
- * All rights reserved.
+/* Copyright 2013 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
diff --git a/src/google_breakpad/common/minidump_cpu_mips.h b/src/google_breakpad/common/minidump_cpu_mips.h
index f4e2b589..91b700af 100644
--- a/src/google_breakpad/common/minidump_cpu_mips.h
+++ b/src/google_breakpad/common/minidump_cpu_mips.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2013, Google Inc.
- * All rights reserved.
+/* Copyright 2013 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
diff --git a/src/google_breakpad/common/minidump_cpu_ppc.h b/src/google_breakpad/common/minidump_cpu_ppc.h
index b24cc424..17a71af7 100644
--- a/src/google_breakpad/common/minidump_cpu_ppc.h
+++ b/src/google_breakpad/common/minidump_cpu_ppc.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
+/* Copyright 2006 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
diff --git a/src/google_breakpad/common/minidump_cpu_ppc64.h b/src/google_breakpad/common/minidump_cpu_ppc64.h
index 61f41938..75638b5d 100644
--- a/src/google_breakpad/common/minidump_cpu_ppc64.h
+++ b/src/google_breakpad/common/minidump_cpu_ppc64.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2008, Google Inc.
- * All rights reserved.
+/* Copyright 2008 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
diff --git a/src/google_breakpad/common/minidump_cpu_riscv.h b/src/google_breakpad/common/minidump_cpu_riscv.h
new file mode 100644
index 00000000..94d06117
--- /dev/null
+++ b/src/google_breakpad/common/minidump_cpu_riscv.h
@@ -0,0 +1,168 @@
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on RISCV and RISCV64. These files may be read on any platform
+ * provided that the alignments of these structures on the processing system
+ * are identical to the alignments of these structures on the producing
+ * system. For this reason, precise-sized types are used. The structures
+ * defined by this file have been laid out to minimize alignment problems by
+ * ensuring that all members are aligned on their natural boundaries.
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors. To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++. In these cases,
+ * *_minsize constants are provided to be used in place of sizeof. For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file.
+ *
+ * Author: Iacopo Colonnelli
+ */
+
+/*
+ * RISCV and RISCV64 support
+ */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_RISCV_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_RISCV_H__
+
+#include "google_breakpad/common/breakpad_types.h"
+
+#define MD_FLOATINGSAVEAREA_RISCV_FPR_COUNT 32
+#if defined(__riscv)
+# if __riscv_flen == 32
+typedef uint32_t riscv_fpr_size;
+# elif __riscv_flen == 64
+typedef uint64_t riscv_fpr_size;
+# elif __riscv_flen == 128
+typedef uint128_struct riscv_fpr_size;
+# else
+# error "Unexpected __riscv_flen"
+# endif
+#else
+typedef uint32_t riscv_fpr_size;
+#endif
+
+#define MD_CONTEXT_RISCV_GPR_COUNT 32
+
+typedef struct {
+ /* 32 floating point registers, f0 .. f31. */
+ riscv_fpr_size regs[MD_FLOATINGSAVEAREA_RISCV_FPR_COUNT];
+ uint32_t fpcsr;
+} MDFloatingSaveAreaRISCV;
+
+enum MDRISCVRegisterNumbers {
+ MD_CONTEXT_RISCV_REG_PC = 0,
+ MD_CONTEXT_RISCV_REG_RA = 1,
+ MD_CONTEXT_RISCV_REG_SP = 2,
+};
+
+/* For (MDRawContextRISCV).context_flags. These values indicate the type of
+ * context stored in the structure. */
+#define MD_CONTEXT_RISCV 0x00800000
+#define MD_CONTEXT_RISCV_INTEGER (MD_CONTEXT_RISCV | 0x00000001)
+#define MD_CONTEXT_RISCV_FLOATING_POINT (MD_CONTEXT_RISCV | 0x00000004)
+#define MD_CONTEXT_RISCV_FULL (MD_CONTEXT_RISCV_INTEGER | \
+ MD_CONTEXT_RISCV_FLOATING_POINT)
+
+typedef struct {
+ /* Determines which fields of this struct are populated */
+ uint32_t context_flags;
+
+ uint32_t pc;
+ uint32_t ra;
+ uint32_t sp;
+ uint32_t gp;
+ uint32_t tp;
+ uint32_t t0;
+ uint32_t t1;
+ uint32_t t2;
+ uint32_t s0;
+ uint32_t s1;
+ uint32_t a0;
+ uint32_t a1;
+ uint32_t a2;
+ uint32_t a3;
+ uint32_t a4;
+ uint32_t a5;
+ uint32_t a6;
+ uint32_t a7;
+ uint32_t s2;
+ uint32_t s3;
+ uint32_t s4;
+ uint32_t s5;
+ uint32_t s6;
+ uint32_t s7;
+ uint32_t s8;
+ uint32_t s9;
+ uint32_t s10;
+ uint32_t s11;
+ uint32_t t3;
+ uint32_t t4;
+ uint32_t t5;
+ uint32_t t6;
+
+ MDFloatingSaveAreaRISCV float_save;
+} MDRawContextRISCV;
+
+/* For (MDRawContextRISCV64).context_flags. These values indicate the type of
+ * context stored in the structure. */
+#define MD_CONTEXT_RISCV64 0x08000000
+#define MD_CONTEXT_RISCV64_INTEGER (MD_CONTEXT_RISCV64 | 0x00000001)
+#define MD_CONTEXT_RISCV64_FLOATING_POINT (MD_CONTEXT_RISCV64 | 0x00000004)
+#define MD_CONTEXT_RISCV64_FULL (MD_CONTEXT_RISCV64_INTEGER | \
+ MD_CONTEXT_RISCV64_FLOATING_POINT)
+
+typedef struct {
+ /* Determines which fields of this struct are populated */
+ uint32_t context_flags;
+
+ uint64_t pc;
+ uint64_t ra;
+ uint64_t sp;
+ uint64_t gp;
+ uint64_t tp;
+ uint64_t t0;
+ uint64_t t1;
+ uint64_t t2;
+ uint64_t s0;
+ uint64_t s1;
+ uint64_t a0;
+ uint64_t a1;
+ uint64_t a2;
+ uint64_t a3;
+ uint64_t a4;
+ uint64_t a5;
+ uint64_t a6;
+ uint64_t a7;
+ uint64_t s2;
+ uint64_t s3;
+ uint64_t s4;
+ uint64_t s5;
+ uint64_t s6;
+ uint64_t s7;
+ uint64_t s8;
+ uint64_t s9;
+ uint64_t s10;
+ uint64_t s11;
+ uint64_t t3;
+ uint64_t t4;
+ uint64_t t5;
+ uint64_t t6;
+
+ MDFloatingSaveAreaRISCV float_save;
+} MDRawContextRISCV64;
+
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_RISCV_H__ */
diff --git a/src/google_breakpad/common/minidump_cpu_sparc.h b/src/google_breakpad/common/minidump_cpu_sparc.h
index 95c08b17..6452588a 100644
--- a/src/google_breakpad/common/minidump_cpu_sparc.h
+++ b/src/google_breakpad/common/minidump_cpu_sparc.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
+/* Copyright 2006 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
diff --git a/src/google_breakpad/common/minidump_cpu_x86.h b/src/google_breakpad/common/minidump_cpu_x86.h
index e09cb7cb..add1e225 100644
--- a/src/google_breakpad/common/minidump_cpu_x86.h
+++ b/src/google_breakpad/common/minidump_cpu_x86.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
+/* Copyright 2006 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
diff --git a/src/google_breakpad/common/minidump_exception_fuchsia.h b/src/google_breakpad/common/minidump_exception_fuchsia.h
index f26a8a2a..169094b2 100644
--- a/src/google_breakpad/common/minidump_exception_fuchsia.h
+++ b/src/google_breakpad/common/minidump_exception_fuchsia.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2019, Google Inc.
- * All rights reserved.
+/* Copyright 2019 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
diff --git a/src/google_breakpad/common/minidump_exception_linux.h b/src/google_breakpad/common/minidump_exception_linux.h
index 6138d5d7..354cdd6b 100644
--- a/src/google_breakpad/common/minidump_exception_linux.h
+++ b/src/google_breakpad/common/minidump_exception_linux.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
+/* Copyright 2006 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
diff --git a/src/google_breakpad/common/minidump_exception_mac.h b/src/google_breakpad/common/minidump_exception_mac.h
index fadbf4ef..acfafaa0 100644
--- a/src/google_breakpad/common/minidump_exception_mac.h
+++ b/src/google_breakpad/common/minidump_exception_mac.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
+/* Copyright 2006 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
@@ -66,9 +65,15 @@ typedef enum {
MD_EXCEPTION_MAC_MACH_SYSCALL = 8,
/* EXC_MACH_SYSCALL */
MD_EXCEPTION_MAC_RPC_ALERT = 9,
+ /* EXC_RESOURCE */
+ MD_EXCEPTION_MAC_RESOURCE = 11,
+ /* EXC_GUARD */
+ MD_EXCEPTION_MAC_GUARD = 12,
/* EXC_RPC_ALERT */
- MD_EXCEPTION_MAC_SIMULATED = 0x43507378
+ MD_EXCEPTION_MAC_SIMULATED = 0x43507378,
/* Fake exception code used by Crashpad's SimulateCrash ('CPsx'). */
+ MD_NS_EXCEPTION_SIMULATED = 0x43506E78
+ /* Fake exception code used by Crashpad's uncaught exceptions ('CPnx'). */
} MDExceptionMac;
/* For (MDException).exception_flags. Breakpad minidump extension for Mac OS X
diff --git a/src/google_breakpad/common/minidump_exception_ps3.h b/src/google_breakpad/common/minidump_exception_ps3.h
index adff5a6b..dd87d7a7 100644
--- a/src/google_breakpad/common/minidump_exception_ps3.h
+++ b/src/google_breakpad/common/minidump_exception_ps3.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2013, Google Inc.
- * All rights reserved.
+/* Copyright 2013 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
diff --git a/src/google_breakpad/common/minidump_exception_solaris.h b/src/google_breakpad/common/minidump_exception_solaris.h
index f18ddf42..16641919 100644
--- a/src/google_breakpad/common/minidump_exception_solaris.h
+++ b/src/google_breakpad/common/minidump_exception_solaris.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
+/* Copyright 2006 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
diff --git a/src/google_breakpad/common/minidump_exception_win32.h b/src/google_breakpad/common/minidump_exception_win32.h
index 4b5d57c8..0431a3fa 100644
--- a/src/google_breakpad/common/minidump_exception_win32.h
+++ b/src/google_breakpad/common/minidump_exception_win32.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
+/* Copyright 2006 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
@@ -2266,4 +2265,77 @@ typedef enum {
MD_IN_PAGE_ERROR_WIN_EXEC = 8
} MDInPageErrorTypeWin;
+// These constants are defined in winnt.h and are used with the
+// STATUS_STACK_BUFFER_OVERRUN exception as exception subcodes.
+typedef enum {
+ MD_FAST_FAIL_LEGACY_GS_VIOLATION = 0,
+ MD_FAST_FAIL_VTGUARD_CHECK_FAILURE = 1,
+ MD_FAST_FAIL_STACK_COOKIE_CHECK_FAILURE = 2,
+ MD_FAST_FAIL_CORRUPT_LIST_ENTRY = 3,
+ MD_FAST_FAIL_INCORRECT_STACK = 4,
+ MD_FAST_FAIL_INVALID_ARG = 5,
+ MD_FAST_FAIL_GS_COOKIE_INIT = 6,
+ MD_FAST_FAIL_FATAL_APP_EXIT = 7,
+ MD_FAST_FAIL_RANGE_CHECK_FAILURE = 8,
+ MD_FAST_FAIL_UNSAFE_REGISTRY_ACCESS = 9,
+ MD_FAST_FAIL_GUARD_ICALL_CHECK_FAILURE = 10,
+ MD_FAST_FAIL_GUARD_WRITE_CHECK_FAILURE = 11,
+ MD_FAST_FAIL_INVALID_FIBER_SWITCH = 12,
+ MD_FAST_FAIL_INVALID_SET_OF_CONTEXT = 13,
+ MD_FAST_FAIL_INVALID_REFERENCE_COUNT = 14,
+ MD_FAST_FAIL_INVALID_JUMP_BUFFER = 18,
+ MD_FAST_FAIL_MRDATA_MODIFIED = 19,
+ MD_FAST_FAIL_CERTIFICATION_FAILURE = 20,
+ MD_FAST_FAIL_INVALID_EXCEPTION_CHAIN = 21,
+ MD_FAST_FAIL_CRYPTO_LIBRARY = 22,
+ MD_FAST_FAIL_INVALID_CALL_IN_DLL_CALLOUT = 23,
+ MD_FAST_FAIL_INVALID_IMAGE_BASE = 24,
+ MD_FAST_FAIL_DLOAD_PROTECTION_FAILURE = 25,
+ MD_FAST_FAIL_UNSAFE_EXTENSION_CALL = 26,
+ MD_FAST_FAIL_DEPRECATED_SERVICE_INVOKED = 27,
+ MD_FAST_FAIL_INVALID_BUFFER_ACCESS = 28,
+ MD_FAST_FAIL_INVALID_BALANCED_TREE = 29,
+ MD_FAST_FAIL_INVALID_NEXT_THREAD = 30,
+ MD_FAST_FAIL_GUARD_ICALL_CHECK_SUPPRESSED = 31,
+ MD_FAST_FAIL_APCS_DISABLED = 32,
+ MD_FAST_FAIL_INVALID_IDLE_STATE = 33,
+ MD_FAST_FAIL_MRDATA_PROTECTION_FAILURE = 34,
+ MD_FAST_FAIL_UNEXPECTED_HEAP_EXCEPTION = 35,
+ MD_FAST_FAIL_INVALID_LOCK_STATE = 36,
+ MD_FAST_FAIL_GUARD_JUMPTABLE = 37,
+ MD_FAST_FAIL_INVALID_LONGJUMP_TARGET = 38,
+ MD_FAST_FAIL_INVALID_DISPATCH_CONTEXT = 39,
+ MD_FAST_FAIL_INVALID_THREAD = 40,
+ MD_FAST_FAIL_INVALID_SYSCALL_NUMBER = 41,
+ MD_FAST_FAIL_INVALID_FILE_OPERATION = 42,
+ MD_FAST_FAIL_LPAC_ACCESS_DENIED = 43,
+ MD_FAST_FAIL_GUARD_SS_FAILURE = 44,
+ MD_FAST_FAIL_LOADER_CONTINUITY_FAILURE = 45,
+ MD_FAST_FAIL_GUARD_EXPORT_SUPPRESSION_FAILURE = 46,
+ MD_FAST_FAIL_INVALID_CONTROL_STACK = 47,
+ MD_FAST_FAIL_SET_CONTEXT_DENIED = 48,
+ MD_FAST_FAIL_INVALID_IAT = 49,
+ MD_FAST_FAIL_HEAP_METADATA_CORRUPTION = 50,
+ MD_FAST_FAIL_PAYLOAD_RESTRICTION_VIOLATION = 51,
+ MD_FAST_FAIL_LOW_LABEL_ACCESS_DENIED = 52,
+ MD_FAST_FAIL_ENCLAVE_CALL_FAILURE = 53,
+ MD_FAST_FAIL_UNHANDLED_LSS_EXCEPTON = 54,
+ MD_FAST_FAIL_ADMINLESS_ACCESS_DENIED = 55,
+ MD_FAST_FAIL_UNEXPECTED_CALL = 56,
+ MD_FAST_FAIL_CONTROL_INVALID_RETURN_ADDRESS = 57,
+ MD_FAST_FAIL_UNEXPECTED_HOST_BEHAVIOR = 58,
+ MD_FAST_FAIL_FLAGS_CORRUPTION = 59,
+ MD_FAST_FAIL_VEH_CORRUPTION = 60,
+ MD_FAST_FAIL_ETW_CORRUPTION = 61,
+ MD_FAST_FAIL_RIO_ABORT = 62,
+ MD_FAST_FAIL_INVALID_PFN = 63,
+ MD_FAST_FAIL_GUARD_ICALL_CHECK_FAILURE_XFG = 64,
+ MD_FAST_FAIL_CAST_GUARD = 65,
+ MD_FAST_FAIL_HOST_VISIBILITY_CHANGE = 66,
+ MD_FAST_FAIL_KERNEL_CET_SHADOW_STACK_ASSIST = 67,
+ MD_FAST_FAIL_PATCH_CALLBACK_FAILED = 68,
+ MD_FAST_FAIL_NTDLL_PATCH_FAILED = 69,
+ MD_FAST_FAIL_INVALID_FLS_DATA = 70
+} MDFastFailSubcodeTypeWin;
+
#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_WIN32_H__ */
diff --git a/src/google_breakpad/common/minidump_format.h b/src/google_breakpad/common/minidump_format.h
index 6eceddbb..1526afce 100644
--- a/src/google_breakpad/common/minidump_format.h
+++ b/src/google_breakpad/common/minidump_format.h
@@ -1,5 +1,4 @@
-/* Copyright (c) 2006, Google Inc.
- * All rights reserved.
+/* Copyright 2006 Google LLC
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
- * * Neither the name of Google Inc. nor the names of its
+ * * Neither the name of Google LLC nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
@@ -118,6 +117,7 @@ typedef struct {
#include "minidump_cpu_mips.h"
#include "minidump_cpu_ppc.h"
#include "minidump_cpu_ppc64.h"
+#include "minidump_cpu_riscv.h"
#include "minidump_cpu_sparc.h"
#include "minidump_cpu_x86.h"
@@ -239,6 +239,15 @@ typedef struct {
MDRVA rva;
} MDLocationDescriptor; /* MINIDUMP_LOCATION_DESCRIPTOR */
+/* An MDRVA64 is an 64-bit offset into the minidump file. The beginning of the
+ * MDRawHeader is at offset 0. */
+typedef uint64_t MDRVA64; /* RVA64 */
+
+typedef struct {
+ uint64_t data_size;
+ MDRVA64 rva;
+} MDLocationDescriptor64; /* MINIDUMP_LOCATION_DESCRIPTOR64 */
+
typedef struct {
/* The base address of the memory range on the host that produced the
@@ -332,6 +341,7 @@ typedef enum {
MD_JAVASCRIPT_DATA_STREAM = 20,
MD_SYSTEM_MEMORY_INFO_STREAM = 21,
MD_PROCESS_VM_COUNTERS_STREAM = 22,
+ MD_THREAD_NAME_LIST_STREAM = 24, /* MDRawThreadNameList */
MD_LAST_RESERVED_STREAM = 0x0000ffff,
/* Breakpad extension types. 0x4767 = "Gg" */
@@ -382,6 +392,20 @@ typedef struct {
static const size_t MDRawThreadList_minsize = offsetof(MDRawThreadList,
threads[0]);
+#pragma pack(push, 4)
+typedef struct {
+ uint32_t thread_id;
+ MDRVA64 thread_name_rva; /* MDString */
+} MDRawThreadName; /* MINIDUMP_THREAD_NAME */
+
+typedef struct {
+ uint32_t number_of_thread_names;
+ MDRawThreadName thread_names[1];
+} MDRawThreadNameList; /* MINIDUMP_THREAD_NAME_LIST */
+#pragma pack(pop)
+
+static const size_t MDRawThreadNameList_minsize =
+ offsetof(MDRawThreadNameList, thread_names[0]);
typedef struct {
uint64_t base_of_image;
@@ -529,7 +553,7 @@ static const size_t MDRawMemoryList_minsize = offsetof(MDRawMemoryList,
memory_ranges[0]);
-#define MD_EXCEPTION_MAXIMUM_PARAMETERS 15
+#define MD_EXCEPTION_MAXIMUM_PARAMETERS 15u
typedef struct {
uint32_t exception_code; /* Windows: MDExceptionCodeWin,
@@ -660,6 +684,8 @@ typedef enum {
MD_CPU_ARCHITECTURE_PPC64 = 0x8002, /* Breakpad-defined value for PPC64 */
MD_CPU_ARCHITECTURE_ARM64_OLD = 0x8003, /* Breakpad-defined value for ARM64 */
MD_CPU_ARCHITECTURE_MIPS64 = 0x8004, /* Breakpad-defined value for MIPS64 */
+ MD_CPU_ARCHITECTURE_RISCV = 0x8005, /* Breakpad-defined value for RISCV */
+ MD_CPU_ARCHITECTURE_RISCV64 = 0x8006, /* Breakpad-defined value for RISCV64 */
MD_CPU_ARCHITECTURE_UNKNOWN = 0xffff /* PROCESSOR_ARCHITECTURE_UNKNOWN */
} MDCPUArchitecture;
@@ -1071,9 +1097,22 @@ typedef struct {
} MDRawSimpleStringDictionary;
typedef struct {
+ MDRVA name;
+ uint16_t type;
+ uint16_t reserved;
+ MDRVA value;
+} MDRawCrashpadAnnotation;
+
+typedef struct {
+ uint32_t count;
+ MDLocationDescriptor objects[0]; /* MDRawCrashpadAnnotation */
+} MDRawCrashpadAnnotationList;
+
+typedef struct {
uint32_t version;
MDLocationDescriptor list_annotations;
MDLocationDescriptor simple_annotations; /* MDRawSimpleStringDictionary */
+ MDLocationDescriptor annotation_objects; /* MDRawCrashpadAnnotationList */
} MDRawModuleCrashpadInfo;
typedef struct {
@@ -1092,6 +1131,8 @@ typedef struct {
MDGUID client_id;
MDLocationDescriptor simple_annotations; /* MDRawSimpleStringDictionary */
MDLocationDescriptor module_list; /* MDRawModuleCrashpadInfoList */
+ uint32_t reserved;
+ uint64_t address_mask;
} MDRawCrashpadInfo;
#if defined(_MSC_VER)
diff --git a/src/google_breakpad/common/minidump_size.h b/src/google_breakpad/common/minidump_size.h
index fae57923..f9abdc36 100644
--- a/src/google_breakpad/common/minidump_size.h
+++ b/src/google_breakpad/common/minidump_size.h
@@ -1,5 +1,4 @@
-// Copyright (c) 2007, Google Inc.
-// All rights reserved.
+// Copyright 2007 Google LLC
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
@@ -11,7 +10,7 @@
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
-// * Neither the name of Google Inc. nor the names of its
+// * Neither the name of Google LLC nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//