Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Crashpad Authors. All rights reserved. | 1 // Copyright 2014 The Crashpad Authors. All rights reserved. |
| 2 // | 2 // |
| 3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
| 5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
| 6 // | 6 // |
| 7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
| 8 // | 8 // |
| 9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
| 10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
| (...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 309 | 309 |
| 310 //! \brief A list of key-value pairs. | 310 //! \brief A list of key-value pairs. |
| 311 struct __attribute__((packed, aligned(4))) MinidumpSimpleStringDictionary { | 311 struct __attribute__((packed, aligned(4))) MinidumpSimpleStringDictionary { |
| 312 //! \brief The number of key-value pairs present. | 312 //! \brief The number of key-value pairs present. |
| 313 uint32_t count; | 313 uint32_t count; |
| 314 | 314 |
| 315 //! \brief A list of MinidumpSimpleStringDictionaryEntry entries. | 315 //! \brief A list of MinidumpSimpleStringDictionaryEntry entries. |
| 316 MinidumpSimpleStringDictionaryEntry entries[0]; | 316 MinidumpSimpleStringDictionaryEntry entries[0]; |
| 317 }; | 317 }; |
| 318 | 318 |
| 319 //! \brief Additional Crashpad-specific information carried within a minidump | 319 //! \brief Additional Crashpad-specific information about a module carried |
| 320 //! file. | 320 //! within a minidump file. |
| 321 struct __attribute__((packed, aligned(4))) MinidumpCrashpadInfo { | 321 //! |
| 322 //! \brief The size of the entire structure, in bytes. | 322 //! This structure augments the information provided by MINIDUMP_MODULE. The |
| 323 //! minidump file must contain a module list stream | |
| 324 //! (::kMinidumpStreamTypeModuleList) in order for this structure to appear. | |
| 325 //! | |
| 326 //! This structure is versioned. When changing this structure, leave the | |
| 327 //! existing structure intact so that earlier parsers will be able to understand | |
| 328 //! the fields they are aware of, and make additions at the end of the | |
| 329 //! structure. Revise #kVersion and document each field’s validity based on | |
| 330 //! #version, so that newer parsers will be able to determine whether the added | |
| 331 //! fields are valid or not. | |
| 332 //! | |
| 333 //! \sa MinidumpCrashpadModuleList | |
| 334 struct __attribute__((packed, aligned(4))) MinidumpCrashpadModule { | |
|
Robert Sesek
2014/10/23 19:25:25
I think "CrashpadModule" is a bit of a misnomer. M
Mark Mentovai
2014/10/23 19:47:53
Robert Sesek wrote:
| |
| 335 //! \brief The structure’s currently-defined version number. | |
| 323 //! | 336 //! |
| 324 //! \sa version | 337 //! \sa version |
| 325 uint32_t size; | 338 static const uint32_t kVersion = 1; |
| 326 | 339 |
| 327 //! \brief The structure’s version number. This can be used to determine which | 340 //! \brief The structure’s version number. |
| 328 //! other fields in the structure are valid. | |
| 329 //! | 341 //! |
| 330 //! \sa size | 342 //! Readers can use this field to determine which other fields in the |
| 343 //! structure are valid. Upon encountering a value greater than #kVersion, a | |
| 344 //! reader should assume that the structure’s layout is compatible with the | |
| 345 //! structure defined as having value #kVersion. | |
| 346 //! | |
| 347 //! Writers may produce values less than #kVersion in this field if there is | |
| 348 //! no need for any fields present in later versions. | |
| 331 uint32_t version; | 349 uint32_t version; |
| 332 | 350 |
| 351 //! \brief A link to a MINIDUMP_MODULE structure in the module list stream. | |
| 352 //! | |
| 353 //! This field is an index into MINIDUMP_MODULE_LIST::Modules. This field’s | |
| 354 //! value must be in the range of MINIDUMP_MODULE_LIST::NumberOfEntries. | |
| 355 //! | |
| 356 //! This field is present when #version is at least `1`. | |
| 357 uint32_t minidump_module_list_index; | |
| 358 | |
| 333 //! \brief A MinidumpSimpleStringDictionary pointing to strings interpreted as | 359 //! \brief A MinidumpSimpleStringDictionary pointing to strings interpreted as |
| 334 //! key-value pairs. The process that crashed controlled the data that | 360 //! key-value pairs. The module controls the data that appears here. |
| 335 //! appears here. | |
| 336 //! | |
| 337 //! If MINIDUMP_LOCATION_DESCRIPTOR::DataSize is `0`, no key-value pairs are | |
| 338 //! present, and MINIDUMP_LOCATION_DESCRIPTOR::Rva should not be consulted. | |
| 339 //! | 361 //! |
| 340 //! This field is present when #version is at least `1`. | 362 //! This field is present when #version is at least `1`. |
| 341 MINIDUMP_LOCATION_DESCRIPTOR simple_annotations; | 363 MINIDUMP_LOCATION_DESCRIPTOR simple_annotations; |
| 342 }; | 364 }; |
| 343 | 365 |
| 366 //! \brief Additional Crashpad-specific information about modules carried within | |
| 367 //! a minidump file. | |
| 368 //! | |
| 369 //! This structure augments the information provided by | |
| 370 //! MINIDUMP_MODULE_LIST. The minidump file must contain a module list stream | |
| 371 //! (::kMinidumpStreamTypeModuleList) in order for this structure to appear. | |
| 372 struct __attribute__((packed, aligned(4))) MinidumpCrashpadModuleList { | |
| 373 //! \brief The number of modules present in the #modules array. | |
|
Robert Sesek
2014/10/23 19:25:25
#crahspad_modules, although I think that's a bit o
Mark Mentovai
2014/10/23 19:47:53
Robert Sesek wrote:
| |
| 374 //! | |
| 375 //! This may be less than the value of MINIDUMP_MODULE_LIST::NumberOfModules | |
| 376 //! because not every MINIDUMP_MODULE structure carried within the minidump | |
| 377 //! file will necessarily have Crashpad-specific information provided by a | |
| 378 //! MinidumpCrashpadModule structure. | |
| 379 uint32_t count; | |
| 380 | |
| 381 //! \brief Pointers to MinidumpCrashpadModule structures. | |
| 382 //! | |
| 383 //! These are referenced indirectly through MINIDUMP_LOCATION_DESCRIPTOR | |
| 384 //! pointers to allow for future growth of the MinidumpCrashpadModule | |
| 385 //! structure. | |
| 386 MINIDUMP_LOCATION_DESCRIPTOR crashpad_modules[0]; | |
| 387 }; | |
| 388 | |
| 389 //! \brief Additional Crashpad-specific information carried within a minidump | |
| 390 //! file. | |
| 391 //! | |
| 392 //! This structure is versioned. When changing this structure, leave the | |
| 393 //! existing structure intact so that earlier parsers will be able to understand | |
| 394 //! the fields they are aware of, and make additions at the end of the | |
| 395 //! structure. Revise #kVersion and document each field’s validity based on | |
| 396 //! #version, so that newer parsers will be able to determine whether the added | |
| 397 //! fields are valid or not. | |
| 398 struct __attribute__((packed, aligned(4))) MinidumpCrashpadInfo { | |
| 399 //! \brief The structure’s currently-defined version number. | |
| 400 //! | |
| 401 //! \sa version | |
| 402 static const uint32_t kVersion = 1; | |
| 403 | |
| 404 //! \brief The structure’s version number. | |
| 405 //! | |
| 406 //! Readers can use this field to determine which other fields in the | |
| 407 //! structure are valid. Upon encountering a value greater than #kVersion, a | |
| 408 //! reader should assume that the structure’s layout is compatible with the | |
| 409 //! structure defined as having value #kVersion. | |
| 410 //! | |
| 411 //! Writers may produce values less than #kVersion in this field if there is | |
| 412 //! no need for any fields present in later versions. | |
| 413 uint32_t version; | |
| 414 | |
| 415 //! \brief A pointer to a MinidumpCrashpadModuleList structure. | |
| 416 //! | |
| 417 //! This field is present when #version is at least `1`. | |
| 418 MINIDUMP_LOCATION_DESCRIPTOR crashpad_module_list; | |
| 419 }; | |
| 420 | |
| 344 } // namespace crashpad | 421 } // namespace crashpad |
| 345 | 422 |
| 346 #endif // CRASHPAD_MINIDUMP_MINIDUMP_EXTENSIONS_H_ | 423 #endif // CRASHPAD_MINIDUMP_MINIDUMP_EXTENSIONS_H_ |
| OLD | NEW |