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 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 //! the fields they are aware of, and make additions at the end of the | 452 //! the fields they are aware of, and make additions at the end of the |
453 //! structure. Revise #kVersion and document each field’s validity based on | 453 //! structure. Revise #kVersion and document each field’s validity based on |
454 //! #version, so that newer parsers will be able to determine whether the added | 454 //! #version, so that newer parsers will be able to determine whether the added |
455 //! fields are valid or not. | 455 //! fields are valid or not. |
456 struct ALIGNAS(4) PACKED MinidumpCrashpadInfo { | 456 struct ALIGNAS(4) PACKED MinidumpCrashpadInfo { |
457 // UUID has a constructor, which makes it non-POD, which makes this structure | 457 // UUID has a constructor, which makes it non-POD, which makes this structure |
458 // non-POD. In order for the default constructor to zero-initialize other | 458 // non-POD. In order for the default constructor to zero-initialize other |
459 // members, an explicit constructor must be provided. | 459 // members, an explicit constructor must be provided. |
460 MinidumpCrashpadInfo() | 460 MinidumpCrashpadInfo() |
461 : version(), | 461 : version(), |
| 462 report_id(), |
462 client_id(), | 463 client_id(), |
463 simple_annotations(), | 464 simple_annotations(), |
464 module_list() { | 465 module_list() { |
465 } | 466 } |
466 | 467 |
467 //! \brief The structure’s currently-defined version number. | 468 //! \brief The structure’s currently-defined version number. |
468 //! | 469 //! |
469 //! \sa version | 470 //! \sa version |
470 static const uint32_t kVersion = 1; | 471 static const uint32_t kVersion = 1; |
471 | 472 |
472 //! \brief The structure’s version number. | 473 //! \brief The structure’s version number. |
473 //! | 474 //! |
474 //! Readers can use this field to determine which other fields in the | 475 //! Readers can use this field to determine which other fields in the |
475 //! structure are valid. Upon encountering a value greater than #kVersion, a | 476 //! structure are valid. Upon encountering a value greater than #kVersion, a |
476 //! reader should assume that the structure’s layout is compatible with the | 477 //! reader should assume that the structure’s layout is compatible with the |
477 //! structure defined as having value #kVersion. | 478 //! structure defined as having value #kVersion. |
478 //! | 479 //! |
479 //! Writers may produce values less than #kVersion in this field if there is | 480 //! Writers may produce values less than #kVersion in this field if there is |
480 //! no need for any fields present in later versions. | 481 //! no need for any fields present in later versions. |
481 uint32_t version; | 482 uint32_t version; |
482 | 483 |
| 484 //! \brief A %UUID identifying an individual crash report. |
| 485 //! |
| 486 //! This provides a stable identifier for a crash even as the report is |
| 487 //! converted to different formats, provided that all formats support storing |
| 488 //! a crash report ID. |
| 489 //! |
| 490 //! If no identifier is available, this field will contain zeroes. |
| 491 //! |
| 492 //! This field is present when #version is at least `1`. |
| 493 UUID report_id; |
| 494 |
483 //! \brief A %UUID identifying the client that crashed. | 495 //! \brief A %UUID identifying the client that crashed. |
484 //! | 496 //! |
485 //! Client identification is within the scope of the application, but it is | 497 //! Client identification is within the scope of the application, but it is |
486 //! expected that the identifier will be unique for an instance of Crashpad | 498 //! expected that the identifier will be unique for an instance of Crashpad |
487 //! monitoring an application or set of applications for a user. The | 499 //! monitoring an application or set of applications for a user. The |
488 //! identifier shall remain stable over time. | 500 //! identifier shall remain stable over time. |
489 //! | 501 //! |
490 //! If no identifier is available, this field will contain zeroes. | 502 //! If no identifier is available, this field will contain zeroes. |
491 //! | 503 //! |
492 //! This field is present when #version is at least `1`. | 504 //! This field is present when #version is at least `1`. |
(...skipping 17 matching lines...) Expand all Loading... |
510 #if defined(COMPILER_MSVC) | 522 #if defined(COMPILER_MSVC) |
511 #pragma pack(pop) | 523 #pragma pack(pop) |
512 #endif // COMPILER_MSVC | 524 #endif // COMPILER_MSVC |
513 #undef PACKED | 525 #undef PACKED |
514 | 526 |
515 MSVC_POP_WARNING(); // C4200 | 527 MSVC_POP_WARNING(); // C4200 |
516 | 528 |
517 } // namespace crashpad | 529 } // namespace crashpad |
518 | 530 |
519 #endif // CRASHPAD_MINIDUMP_MINIDUMP_EXTENSIONS_H_ | 531 #endif // CRASHPAD_MINIDUMP_MINIDUMP_EXTENSIONS_H_ |
OLD | NEW |