| Index: minidump/minidump_extensions.h
|
| diff --git a/minidump/minidump_extensions.h b/minidump/minidump_extensions.h
|
| index e7618e3e0368c22cae715c013dd0ef0dd051703f..7386a76f4b2dd09300ea065eaa120329b24e6fa7 100644
|
| --- a/minidump/minidump_extensions.h
|
| +++ b/minidump/minidump_extensions.h
|
| @@ -316,29 +316,106 @@ struct __attribute__((packed, aligned(4))) MinidumpSimpleStringDictionary {
|
| MinidumpSimpleStringDictionaryEntry entries[0];
|
| };
|
|
|
| +//! \brief Additional Crashpad-specific information about a module carried
|
| +//! within a minidump file.
|
| +//!
|
| +//! This structure augments the information provided by MINIDUMP_MODULE. The
|
| +//! minidump file must contain a module list stream
|
| +//! (::kMinidumpStreamTypeModuleList) in order for this structure to appear.
|
| +//!
|
| +//! This structure is versioned. When changing this structure, leave the
|
| +//! existing structure intact so that earlier parsers will be able to understand
|
| +//! the fields they are aware of, and make additions at the end of the
|
| +//! structure. Revise #kVersion and document each field’s validity based on
|
| +//! #version, so that newer parsers will be able to determine whether the added
|
| +//! fields are valid or not.
|
| +//!
|
| +//! \sa MinidumpModuleCrashpadInfoList
|
| +struct __attribute__((packed, aligned(4))) MinidumpModuleCrashpadInfo {
|
| + //! \brief The structure’s currently-defined version number.
|
| + //!
|
| + //! \sa version
|
| + static const uint32_t kVersion = 1;
|
| +
|
| + //! \brief The structure’s version number.
|
| + //!
|
| + //! Readers can use this field to determine which other fields in the
|
| + //! structure are valid. Upon encountering a value greater than #kVersion, a
|
| + //! reader should assume that the structure’s layout is compatible with the
|
| + //! structure defined as having value #kVersion.
|
| + //!
|
| + //! Writers may produce values less than #kVersion in this field if there is
|
| + //! no need for any fields present in later versions.
|
| + uint32_t version;
|
| +
|
| + //! \brief A link to a MINIDUMP_MODULE structure in the module list stream.
|
| + //!
|
| + //! This field is an index into MINIDUMP_MODULE_LIST::Modules. This field’s
|
| + //! value must be in the range of MINIDUMP_MODULE_LIST::NumberOfEntries.
|
| + //!
|
| + //! This field is present when #version is at least `1`.
|
| + uint32_t minidump_module_list_index;
|
| +
|
| + //! \brief A MinidumpSimpleStringDictionary pointing to strings interpreted as
|
| + //! key-value pairs. The module controls the data that appears here.
|
| + //!
|
| + //! This field is present when #version is at least `1`.
|
| + MINIDUMP_LOCATION_DESCRIPTOR simple_annotations;
|
| +};
|
| +
|
| +//! \brief Additional Crashpad-specific information about modules carried within
|
| +//! a minidump file.
|
| +//!
|
| +//! This structure augments the information provided by
|
| +//! MINIDUMP_MODULE_LIST. The minidump file must contain a module list stream
|
| +//! (::kMinidumpStreamTypeModuleList) in order for this structure to appear.
|
| +struct __attribute__((packed, aligned(4))) MinidumpModuleCrashpadInfoList {
|
| + //! \brief The number of modules present in the #modules array.
|
| + //!
|
| + //! This may be less than the value of MINIDUMP_MODULE_LIST::NumberOfModules
|
| + //! because not every MINIDUMP_MODULE structure carried within the minidump
|
| + //! file will necessarily have Crashpad-specific information provided by a
|
| + //! MinidumpModuleCrashpadInfo structure.
|
| + uint32_t count;
|
| +
|
| + //! \brief Pointers to MinidumpModuleCrashpadInfo structures.
|
| + //!
|
| + //! These are referenced indirectly through MINIDUMP_LOCATION_DESCRIPTOR
|
| + //! pointers to allow for future growth of the MinidumpModuleCrashpadInfo
|
| + //! structure.
|
| + MINIDUMP_LOCATION_DESCRIPTOR modules[0];
|
| +};
|
| +
|
| //! \brief Additional Crashpad-specific information carried within a minidump
|
| //! file.
|
| +//!
|
| +//! This structure is versioned. When changing this structure, leave the
|
| +//! existing structure intact so that earlier parsers will be able to understand
|
| +//! the fields they are aware of, and make additions at the end of the
|
| +//! structure. Revise #kVersion and document each field’s validity based on
|
| +//! #version, so that newer parsers will be able to determine whether the added
|
| +//! fields are valid or not.
|
| struct __attribute__((packed, aligned(4))) MinidumpCrashpadInfo {
|
| - //! \brief The size of the entire structure, in bytes.
|
| + //! \brief The structure’s currently-defined version number.
|
| //!
|
| //! \sa version
|
| - uint32_t size;
|
| + static const uint32_t kVersion = 1;
|
|
|
| - //! \brief The structure’s version number. This can be used to determine which
|
| - //! other fields in the structure are valid.
|
| + //! \brief The structure’s version number.
|
| //!
|
| - //! \sa size
|
| + //! Readers can use this field to determine which other fields in the
|
| + //! structure are valid. Upon encountering a value greater than #kVersion, a
|
| + //! reader should assume that the structure’s layout is compatible with the
|
| + //! structure defined as having value #kVersion.
|
| + //!
|
| + //! Writers may produce values less than #kVersion in this field if there is
|
| + //! no need for any fields present in later versions.
|
| uint32_t version;
|
|
|
| - //! \brief A MinidumpSimpleStringDictionary pointing to strings interpreted as
|
| - //! key-value pairs. The process that crashed controlled the data that
|
| - //! appears here.
|
| - //!
|
| - //! If MINIDUMP_LOCATION_DESCRIPTOR::DataSize is `0`, no key-value pairs are
|
| - //! present, and MINIDUMP_LOCATION_DESCRIPTOR::Rva should not be consulted.
|
| + //! \brief A pointer to a MinidumpModuleCrashpadInfoList structure.
|
| //!
|
| //! This field is present when #version is at least `1`.
|
| - MINIDUMP_LOCATION_DESCRIPTOR simple_annotations;
|
| + MINIDUMP_LOCATION_DESCRIPTOR module_list;
|
| };
|
|
|
| } // namespace crashpad
|
|
|