| OLD | NEW |
| 1 // Copyright (c) 2010 Google Inc. | 1 // Copyright (c) 2010 Google Inc. |
| 2 // All rights reserved. | 2 // All rights reserved. |
| 3 // | 3 // |
| 4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
| 5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
| 6 // met: | 6 // met: |
| 7 // | 7 // |
| 8 // * Redistributions of source code must retain the above copyright | 8 // * Redistributions of source code must retain the above copyright |
| 9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
| 10 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 // CodeModule implementation | 385 // CodeModule implementation |
| 386 virtual uint64_t base_address() const { | 386 virtual uint64_t base_address() const { |
| 387 return valid_ ? module_.base_of_image : static_cast<uint64_t>(-1); | 387 return valid_ ? module_.base_of_image : static_cast<uint64_t>(-1); |
| 388 } | 388 } |
| 389 virtual uint64_t size() const { return valid_ ? module_.size_of_image : 0; } | 389 virtual uint64_t size() const { return valid_ ? module_.size_of_image : 0; } |
| 390 virtual string code_file() const; | 390 virtual string code_file() const; |
| 391 virtual string code_identifier() const; | 391 virtual string code_identifier() const; |
| 392 virtual string debug_file() const; | 392 virtual string debug_file() const; |
| 393 virtual string debug_identifier() const; | 393 virtual string debug_identifier() const; |
| 394 virtual string version() const; | 394 virtual string version() const; |
| 395 virtual const CodeModule* Copy() const; | 395 virtual CodeModule* Copy() const; |
| 396 |
| 397 // Getter and setter for shrink_down_delta. This is used when the address |
| 398 // range for a module is shrunk down due to address range conflicts with |
| 399 // other modules. The base_address and size fields are not updated and they |
| 400 // should always reflect the original values (reported in the minidump). |
| 401 virtual uint64_t shrink_down_delta() const; |
| 402 virtual void SetShrinkDownDelta(uint64_t shrink_down_delta); |
| 396 | 403 |
| 397 // The CodeView record, which contains information to locate the module's | 404 // The CodeView record, which contains information to locate the module's |
| 398 // debugging information (pdb). This is returned as uint8_t* because | 405 // debugging information (pdb). This is returned as uint8_t* because |
| 399 // the data can be of types MDCVInfoPDB20* or MDCVInfoPDB70*, or it may be | 406 // the data can be of types MDCVInfoPDB20* or MDCVInfoPDB70*, or it may be |
| 400 // of a type unknown to Breakpad, in which case the raw data will still be | 407 // of a type unknown to Breakpad, in which case the raw data will still be |
| 401 // returned but no byte-swapping will have been performed. Check the | 408 // returned but no byte-swapping will have been performed. Check the |
| 402 // record's signature in the first four bytes to differentiate between | 409 // record's signature in the first four bytes to differentiate between |
| 403 // the various types. Current toolchains generate modules which carry | 410 // the various types. Current toolchains generate modules which carry |
| 404 // MDCVInfoPDB70 by default. Returns a pointer to the CodeView record on | 411 // MDCVInfoPDB70 by default. Returns a pointer to the CodeView record on |
| 405 // success, and NULL on failure. On success, the optional |size| argument | 412 // success, and NULL on failure. On success, the optional |size| argument |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 494 virtual unsigned int module_count() const { | 501 virtual unsigned int module_count() const { |
| 495 return valid_ ? module_count_ : 0; | 502 return valid_ ? module_count_ : 0; |
| 496 } | 503 } |
| 497 virtual const MinidumpModule* GetModuleForAddress(uint64_t address) const; | 504 virtual const MinidumpModule* GetModuleForAddress(uint64_t address) const; |
| 498 virtual const MinidumpModule* GetMainModule() const; | 505 virtual const MinidumpModule* GetMainModule() const; |
| 499 virtual const MinidumpModule* GetModuleAtSequence( | 506 virtual const MinidumpModule* GetModuleAtSequence( |
| 500 unsigned int sequence) const; | 507 unsigned int sequence) const; |
| 501 virtual const MinidumpModule* GetModuleAtIndex(unsigned int index) const; | 508 virtual const MinidumpModule* GetModuleAtIndex(unsigned int index) const; |
| 502 virtual const CodeModules* Copy() const; | 509 virtual const CodeModules* Copy() const; |
| 503 | 510 |
| 511 // Returns a vector of all modules which address ranges needed to be shrunk |
| 512 // down due to address range conflicts with other modules. |
| 513 virtual vector<linked_ptr<const CodeModule> > GetShrunkRangeModules() const; |
| 514 |
| 504 // Print a human-readable representation of the object to stdout. | 515 // Print a human-readable representation of the object to stdout. |
| 505 void Print(); | 516 void Print(); |
| 506 | 517 |
| 507 protected: | 518 protected: |
| 508 explicit MinidumpModuleList(Minidump* minidump); | 519 explicit MinidumpModuleList(Minidump* minidump); |
| 509 | 520 |
| 510 private: | 521 private: |
| 511 friend class Minidump; | 522 friend class Minidump; |
| 512 | 523 |
| 513 typedef vector<MinidumpModule> MinidumpModules; | 524 typedef vector<MinidumpModule> MinidumpModules; |
| (...skipping 607 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1121 // construction or after a failed Read(); true following a successful | 1132 // construction or after a failed Read(); true following a successful |
| 1122 // Read(). | 1133 // Read(). |
| 1123 bool valid_; | 1134 bool valid_; |
| 1124 }; | 1135 }; |
| 1125 | 1136 |
| 1126 | 1137 |
| 1127 } // namespace google_breakpad | 1138 } // namespace google_breakpad |
| 1128 | 1139 |
| 1129 | 1140 |
| 1130 #endif // GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_H__ | 1141 #endif // GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_H__ |
| OLD | NEW |