diff options
Diffstat (limited to 'src/common/dwarf/dwarf2reader.h')
-rw-r--r-- | src/common/dwarf/dwarf2reader.h | 220 |
1 files changed, 110 insertions, 110 deletions
diff --git a/src/common/dwarf/dwarf2reader.h b/src/common/dwarf/dwarf2reader.h index 902d9ef1..0b194c17 100644 --- a/src/common/dwarf/dwarf2reader.h +++ b/src/common/dwarf/dwarf2reader.h @@ -63,21 +63,21 @@ class DwpReader; // This maps from a string naming a section to a pair containing a // the data for the section, and the size of the section. -typedef std::map<string, std::pair<const uint8_t *, uint64> > SectionMap; +typedef std::map<string, std::pair<const uint8_t *, uint64_t> > SectionMap; typedef std::list<std::pair<enum DwarfAttribute, enum DwarfForm> > AttributeList; typedef AttributeList::iterator AttributeIterator; typedef AttributeList::const_iterator ConstAttributeIterator; struct LineInfoHeader { - uint64 total_length; - uint16 version; - uint64 prologue_length; - uint8 min_insn_length; // insn stands for instructin + uint64_t total_length; + uint16_t version; + uint64_t prologue_length; + uint8_t min_insn_length; // insn stands for instructin bool default_is_stmt; // stmt stands for statement - int8 line_base; - uint8 line_range; - uint8 opcode_base; + int8_t line_base; + uint8_t line_range; + uint8_t opcode_base; // Use a pointer so that signalsafe_addr2line is able to use this structure // without heap allocation problem. std::vector<unsigned char> *std_opcode_lengths; @@ -90,7 +90,7 @@ class LineInfo { // to the beginning and length of the line information to read. // Reader is a ByteReader class that has the endianness set // properly. - LineInfo(const uint8_t *buffer_, uint64 buffer_length, + LineInfo(const uint8_t *buffer_, uint64_t buffer_length, ByteReader* reader, LineInfoHandler* handler); virtual ~LineInfo() { @@ -102,7 +102,7 @@ class LineInfo { // Start processing line info, and calling callbacks in the handler. // Consumes the line number information for a single compilation unit. // Returns the number of bytes processed. - uint64 Start(); + uint64_t Start(); // Process a single line info opcode at START using the state // machine at LSM. Return true if we should define a line using the @@ -146,7 +146,7 @@ class LineInfo { // the end of the line information header. const uint8_t *buffer_; #ifndef NDEBUG - uint64 buffer_length_; + uint64_t buffer_length_; #endif const uint8_t *after_header_; }; @@ -164,7 +164,7 @@ class LineInfoHandler { // Called when we define a directory. NAME is the directory name, // DIR_NUM is the directory number - virtual void DefineDir(const string& name, uint32 dir_num) { } + virtual void DefineDir(const string& name, uint32_t dir_num) { } // Called when we define a filename. NAME is the filename, FILE_NUM // is the file number which is -1 if the file index is the next @@ -173,9 +173,9 @@ class LineInfoHandler { // directory index for the directory name of this file, MOD_TIME is // the modification time of the file, and LENGTH is the length of // the file - virtual void DefineFile(const string& name, int32 file_num, - uint32 dir_num, uint64 mod_time, - uint64 length) { } + virtual void DefineFile(const string& name, int32_t file_num, + uint32_t dir_num, uint64_t mod_time, + uint64_t length) { } // Called when the line info reader has a new line, address pair // ready for us. ADDRESS is the address of the code, LENGTH is the @@ -183,8 +183,8 @@ class LineInfoHandler { // containing the code, LINE_NUM is the line number in that file for // the code, and COLUMN_NUM is the column number the code starts at, // if we know it (0 otherwise). - virtual void AddLine(uint64 address, uint64 length, - uint32 file_num, uint32 line_num, uint32 column_num) { } + virtual void AddLine(uint64_t address, uint64_t length, + uint32_t file_num, uint32_t line_num, uint32_t column_num) { } }; class RangeListHandler { @@ -194,10 +194,10 @@ class RangeListHandler { virtual ~RangeListHandler() { } // Add a range. - virtual void AddRange(uint64 begin, uint64 end) { }; + virtual void AddRange(uint64_t begin, uint64_t end) { }; // A new base address must be set for computing the ranges' addresses. - virtual void SetBaseAddress(uint64 base_address) { }; + virtual void SetBaseAddress(uint64_t base_address) { }; // Finish processing the range list. virtual void Finish() { }; @@ -205,14 +205,14 @@ class RangeListHandler { class RangeListReader { public: - RangeListReader(const uint8_t *buffer, uint64 size, ByteReader *reader, + RangeListReader(const uint8_t *buffer, uint64_t size, ByteReader *reader, RangeListHandler *handler); - bool ReadRangeList(uint64 offset); + bool ReadRangeList(uint64_t offset); private: const uint8_t *buffer_; - uint64 size_; + uint64_t size_; ByteReader* reader_; RangeListHandler *handler_; }; @@ -230,9 +230,9 @@ class Dwarf2Handler { // Start to process a compilation unit at OFFSET from the beginning of the // .debug_info section. Return false if you would like to skip this // compilation unit. - virtual bool StartCompilationUnit(uint64 offset, uint8 address_size, - uint8 offset_size, uint64 cu_length, - uint8 dwarf_version) { return false; } + virtual bool StartCompilationUnit(uint64_t offset, uint8_t address_size, + uint8_t offset_size, uint64_t cu_length, + uint8_t dwarf_version) { return false; } // When processing a skeleton compilation unit, resulting from a split // DWARF compilation, once the skeleton debug info has been read, @@ -244,40 +244,40 @@ class Dwarf2Handler { // Start to process a split compilation unit at OFFSET from the beginning of // the debug_info section in the .dwp/.dwo file. Return false if you would // like to skip this compilation unit. - virtual bool StartSplitCompilationUnit(uint64 offset, - uint64 cu_length) { return false; } + virtual bool StartSplitCompilationUnit(uint64_t offset, + uint64_t cu_length) { return false; } // Start to process a DIE at OFFSET from the beginning of the .debug_info // section. Return false if you would like to skip this DIE. - virtual bool StartDIE(uint64 offset, enum DwarfTag tag) { return false; } + virtual bool StartDIE(uint64_t offset, enum DwarfTag tag) { return false; } // Called when we have an attribute with unsigned data to give to our // handler. The attribute is for the DIE at OFFSET from the beginning of the // .debug_info section. Its name is ATTR, its form is FORM, and its value is // DATA. - virtual void ProcessAttributeUnsigned(uint64 offset, + virtual void ProcessAttributeUnsigned(uint64_t offset, enum DwarfAttribute attr, enum DwarfForm form, - uint64 data) { } + uint64_t data) { } // Called when we have an attribute with signed data to give to our handler. // The attribute is for the DIE at OFFSET from the beginning of the // .debug_info section. Its name is ATTR, its form is FORM, and its value is // DATA. - virtual void ProcessAttributeSigned(uint64 offset, + virtual void ProcessAttributeSigned(uint64_t offset, enum DwarfAttribute attr, enum DwarfForm form, - int64 data) { } + int64_t data) { } // Called when we have an attribute whose value is a reference to // another DIE. The attribute belongs to the DIE at OFFSET from the // beginning of the .debug_info section. Its name is ATTR, its form // is FORM, and the offset of the DIE being referred to from the // beginning of the .debug_info section is DATA. - virtual void ProcessAttributeReference(uint64 offset, + virtual void ProcessAttributeReference(uint64_t offset, enum DwarfAttribute attr, enum DwarfForm form, - uint64 data) { } + uint64_t data) { } // Called when we have an attribute with a buffer of data to give to our // handler. The attribute is for the DIE at OFFSET from the beginning of the @@ -285,17 +285,17 @@ class Dwarf2Handler { // the buffer's contents, and its length in bytes is LENGTH. The buffer is // owned by the caller, not the callee, and may not persist for very long. // If you want the data to be available later, it needs to be copied. - virtual void ProcessAttributeBuffer(uint64 offset, + virtual void ProcessAttributeBuffer(uint64_t offset, enum DwarfAttribute attr, enum DwarfForm form, const uint8_t *data, - uint64 len) { } + uint64_t len) { } // Called when we have an attribute with string data to give to our handler. // The attribute is for the DIE at OFFSET from the beginning of the // .debug_info section. Its name is ATTR, its form is FORM, and its value is // DATA. - virtual void ProcessAttributeString(uint64 offset, + virtual void ProcessAttributeString(uint64_t offset, enum DwarfAttribute attr, enum DwarfForm form, const string& data) { } @@ -304,16 +304,16 @@ class Dwarf2Handler { // of a type unit in the .debug_types section. OFFSET is the offset of // the DIE whose attribute we're reporting. ATTR and FORM are the // attribute's name and form. SIGNATURE is the type unit's signature. - virtual void ProcessAttributeSignature(uint64 offset, + virtual void ProcessAttributeSignature(uint64_t offset, enum DwarfAttribute attr, enum DwarfForm form, - uint64 signature) { } + uint64_t signature) { } // Called when finished processing the DIE at OFFSET. // Because DWARF2/3 specifies a tree of DIEs, you may get starts // before ends of the previous DIE, as we process children before // ending the parent. - virtual void EndDIE(uint64 offset) { } + virtual void EndDIE(uint64_t offset) { } }; @@ -358,8 +358,8 @@ class CompilationUnit { // Initialize a compilation unit. This requires a map of sections, // the offset of this compilation unit in the .debug_info section, a // ByteReader, and a Dwarf2Handler class to call callbacks in. - CompilationUnit(const string& path, const SectionMap& sections, uint64 offset, - ByteReader* reader, Dwarf2Handler* handler); + CompilationUnit(const string& path, const SectionMap& sections, + uint64_t offset, ByteReader* reader, Dwarf2Handler* handler); virtual ~CompilationUnit() { if (abbrevs_) delete abbrevs_; } @@ -370,8 +370,8 @@ class CompilationUnit { // compilation unit. We also inherit the Dwarf2Handler from // the executable file, and call it as if we were still // processing the original compilation unit. - void SetSplitDwarf(const uint8_t* addr_buffer, uint64 addr_buffer_length, - uint64 addr_base, uint64 ranges_base, uint64 dwo_id); + void SetSplitDwarf(const uint8_t* addr_buffer, uint64_t addr_buffer_length, + uint64_t addr_base, uint64_t ranges_base, uint64_t dwo_id); // Begin reading a Dwarf2 compilation unit, and calling the // callbacks in the Dwarf2Handler @@ -380,7 +380,7 @@ class CompilationUnit { // headers. This plus the starting offset passed to the constructor // is the offset of the end of the compilation unit --- and the // start of the next compilation unit, if there is one. - uint64 Start(); + uint64_t Start(); private: @@ -388,7 +388,7 @@ class CompilationUnit { // The abbreviation tells how to read a DWARF2/3 DIE, and consist of a // tag and a list of attributes, as well as the data form of each attribute. struct Abbrev { - uint64 number; + uint64_t number; enum DwarfTag tag; bool has_children; AttributeList attributes; @@ -398,10 +398,10 @@ class CompilationUnit { // in the actual file, as the one in the file may have a 32 bit or // 64 bit length. struct CompilationUnitHeader { - uint64 length; - uint16 version; - uint64 abbrev_offset; - uint8 address_size; + uint64_t length; + uint16_t version; + uint64_t abbrev_offset; + uint8_t address_size; } header_; // Reads the DWARF2/3 header for this compilation unit. @@ -412,13 +412,13 @@ class CompilationUnit { // Processes a single DIE for this compilation unit and return a new // pointer just past the end of it - const uint8_t *ProcessDIE(uint64 dieoffset, + const uint8_t *ProcessDIE(uint64_t dieoffset, const uint8_t *start, const Abbrev& abbrev); // Processes a single attribute and return a new pointer just past the // end of it - const uint8_t *ProcessAttribute(uint64 dieoffset, + const uint8_t *ProcessAttribute(uint64_t dieoffset, const uint8_t *start, enum DwarfAttribute attr, enum DwarfForm form); @@ -429,10 +429,10 @@ class CompilationUnit { // FORM, and the actual data of the attribute is in DATA. // If we see a DW_AT_GNU_dwo_id attribute, save the value so that // we can find the debug info in a .dwo or .dwp file. - void ProcessAttributeUnsigned(uint64 offset, + void ProcessAttributeUnsigned(uint64_t offset, enum DwarfAttribute attr, enum DwarfForm form, - uint64 data) { + uint64_t data) { if (attr == DW_AT_GNU_dwo_id) { dwo_id_ = data; } @@ -455,10 +455,10 @@ class CompilationUnit { // our handler. The attribute is for the DIE at OFFSET from the // beginning of compilation unit, has a name of ATTR, a form of // FORM, and the actual data of the attribute is in DATA. - void ProcessAttributeSigned(uint64 offset, + void ProcessAttributeSigned(uint64_t offset, enum DwarfAttribute attr, enum DwarfForm form, - int64 data) { + int64_t data) { handler_->ProcessAttributeSigned(offset, attr, form, data); } @@ -467,11 +467,11 @@ class CompilationUnit { // beginning of compilation unit, has a name of ATTR, a form of // FORM, and the actual data of the attribute is in DATA, and the // length of the buffer is LENGTH. - void ProcessAttributeBuffer(uint64 offset, + void ProcessAttributeBuffer(uint64_t offset, enum DwarfAttribute attr, enum DwarfForm form, const uint8_t* data, - uint64 len) { + uint64_t len) { handler_->ProcessAttributeBuffer(offset, attr, form, data, len); } @@ -481,7 +481,7 @@ class CompilationUnit { // FORM, and the actual data of the attribute is in DATA. // If we see a DW_AT_GNU_dwo_name attribute, save the value so // that we can find the debug info in a .dwo or .dwp file. - void ProcessAttributeString(uint64 offset, + void ProcessAttributeString(uint64_t offset, enum DwarfAttribute attr, enum DwarfForm form, const char* data) { @@ -513,13 +513,13 @@ class CompilationUnit { // Offset from section start is the offset of this compilation unit // from the beginning of the .debug_info section. - uint64 offset_from_section_start_; + uint64_t offset_from_section_start_; // buffer is the buffer for our CU, starting at .debug_info + offset // passed in from constructor. // after_header points to right after the compilation unit header. const uint8_t *buffer_; - uint64 buffer_length_; + uint64_t buffer_length_; const uint8_t *after_header_; // The associated ByteReader that handles endianness issues for us @@ -540,17 +540,17 @@ class CompilationUnit { // This is here to avoid doing a section lookup for strings in // ProcessAttribute, which is in the hot path for DWARF2 reading. const uint8_t *string_buffer_; - uint64 string_buffer_length_; + uint64_t string_buffer_length_; // String offsets section buffer and length, if we have a string offsets // section (.debug_str_offsets or .debug_str_offsets.dwo). const uint8_t* str_offsets_buffer_; - uint64 str_offsets_buffer_length_; + uint64_t str_offsets_buffer_length_; // Address section buffer and length, if we have an address section // (.debug_addr). const uint8_t* addr_buffer_; - uint64 addr_buffer_length_; + uint64_t addr_buffer_length_; // Flag indicating whether this compilation unit is part of a .dwo // or .dwp file. If true, we are reading this unit because a @@ -562,20 +562,20 @@ class CompilationUnit { bool is_split_dwarf_; // The value of the DW_AT_GNU_dwo_id attribute, if any. - uint64 dwo_id_; + uint64_t dwo_id_; // The value of the DW_AT_GNU_dwo_name attribute, if any. const char* dwo_name_; // If this is a split DWARF CU, the value of the DW_AT_GNU_dwo_id attribute // from the skeleton CU. - uint64 skeleton_dwo_id_; + uint64_t skeleton_dwo_id_; // The value of the DW_AT_GNU_ranges_base attribute, if any. - uint64 ranges_base_; + uint64_t ranges_base_; // The value of the DW_AT_GNU_addr_base attribute, if any. - uint64 addr_base_; + uint64_t addr_base_; // True if we have already looked for a .dwp file. bool have_checked_for_dwp_; @@ -613,16 +613,16 @@ class DwpReader { void Initialize(); // Read the debug sections for the given dwo_id. - void ReadDebugSectionsForCU(uint64 dwo_id, SectionMap* sections); + void ReadDebugSectionsForCU(uint64_t dwo_id, SectionMap* sections); private: // Search a v1 hash table for "dwo_id". Returns the slot index // where the dwo_id was found, or -1 if it was not found. - int LookupCU(uint64 dwo_id); + int LookupCU(uint64_t dwo_id); // Search a v2 hash table for "dwo_id". Returns the row index // in the offsets and sizes tables, or 0 if it was not found. - uint32 LookupCUv2(uint64 dwo_id); + uint32_t LookupCUv2(uint64_t dwo_id); // The ELF reader for the .dwp file. ElfReader* elf_reader_; @@ -957,7 +957,7 @@ class CallFrameInfo { // For both DWARF CFI and .eh_frame sections, this is the CIE id in a // CIE, and the offset of the associated CIE in an FDE. - uint64 id; + uint64_t id; // The CIE that applies to this entry, if we've parsed it. If this is a // CIE, then this field points to this structure. @@ -966,9 +966,9 @@ class CallFrameInfo { // A common information entry (CIE). struct CIE: public Entry { - uint8 version; // CFI data version number + uint8_t version; // CFI data version number string augmentation; // vendor format extension markers - uint64 code_alignment_factor; // scale for code address adjustments + uint64_t code_alignment_factor; // scale for code address adjustments int data_alignment_factor; // scale for stack pointer adjustments unsigned return_address_register; // which register holds the return addr @@ -992,7 +992,7 @@ class CallFrameInfo { // If has_z_personality is true, this is the address of the personality // routine --- or, if personality_encoding & DW_EH_PE_indirect, the // address where the personality routine's address is stored. - uint64 personality_address; + uint64_t personality_address; // This is the encoding used for addresses in the FDE header and // in DW_CFA_set_loc instructions. This is always valid, whether @@ -1002,19 +1002,19 @@ class CallFrameInfo { // These were only introduced in DWARF4, so will not be set in older // versions. - uint8 address_size; - uint8 segment_size; + uint8_t address_size; + uint8_t segment_size; }; // A frame description entry (FDE). struct FDE: public Entry { - uint64 address; // start address of described code - uint64 size; // size of described code, in bytes + uint64_t address; // start address of described code + uint64_t size; // size of described code, in bytes // If cie->has_z_lsda is true, then this is the language-specific data // area's address --- or its address's address, if cie->lsda_encoding // has the DW_EH_PE_indirect bit set. - uint64 lsda_address; + uint64_t lsda_address; }; // Internal use. @@ -1105,8 +1105,8 @@ class CallFrameInfo::Handler { // to the handler explicitly; instead, if the handler elects to // process a given FDE, the parser reiterates the appropriate CIE's // contents at the beginning of the FDE's rules. - virtual bool Entry(size_t offset, uint64 address, uint64 length, - uint8 version, const string &augmentation, + virtual bool Entry(size_t offset, uint64_t address, uint64_t length, + uint8_t version, const string &augmentation, unsigned return_address) = 0; // When the Entry function returns true, the parser calls these @@ -1128,21 +1128,21 @@ class CallFrameInfo::Handler { // computation. All other REG values will be positive. // At ADDRESS, register REG's value is not recoverable. - virtual bool UndefinedRule(uint64 address, int reg) = 0; + virtual bool UndefinedRule(uint64_t address, int reg) = 0; // At ADDRESS, register REG's value is the same as that it had in // the caller. - virtual bool SameValueRule(uint64 address, int reg) = 0; + virtual bool SameValueRule(uint64_t address, int reg) = 0; // At ADDRESS, register REG has been saved at offset OFFSET from // BASE_REGISTER. - virtual bool OffsetRule(uint64 address, int reg, + virtual bool OffsetRule(uint64_t address, int reg, int base_register, long offset) = 0; // At ADDRESS, the caller's value of register REG is the current // value of BASE_REGISTER plus OFFSET. (This rule doesn't provide an // address at which the register's value is saved.) - virtual bool ValOffsetRule(uint64 address, int reg, + virtual bool ValOffsetRule(uint64_t address, int reg, int base_register, long offset) = 0; // At ADDRESS, register REG has been saved in BASE_REGISTER. This differs @@ -1150,17 +1150,17 @@ class CallFrameInfo::Handler { // BASE_REGISTER is the "home" for REG's saved value: if you want to // assign to a variable whose home is REG in the calling frame, you // should put the value in BASE_REGISTER. - virtual bool RegisterRule(uint64 address, int reg, int base_register) = 0; + virtual bool RegisterRule(uint64_t address, int reg, int base_register) = 0; // At ADDRESS, the DWARF expression EXPRESSION yields the address at // which REG was saved. - virtual bool ExpressionRule(uint64 address, int reg, + virtual bool ExpressionRule(uint64_t address, int reg, const string &expression) = 0; // At ADDRESS, the DWARF expression EXPRESSION yields the caller's // value for REG. (This rule doesn't provide an address at which the // register's value is saved.) - virtual bool ValExpressionRule(uint64 address, int reg, + virtual bool ValExpressionRule(uint64_t address, int reg, const string &expression) = 0; // Indicate that the rules for the address range reported by the @@ -1201,7 +1201,7 @@ class CallFrameInfo::Handler { // which the routine's address is stored. The default definition for // this handler function simply returns true, allowing parsing of // the entry to continue. - virtual bool PersonalityRoutine(uint64 address, bool indirect) { + virtual bool PersonalityRoutine(uint64_t address, bool indirect) { return true; } @@ -1210,7 +1210,7 @@ class CallFrameInfo::Handler { // which the area's address is stored. The default definition for // this handler function simply returns true, allowing parsing of // the entry to continue. - virtual bool LanguageSpecificDataArea(uint64 address, bool indirect) { + virtual bool LanguageSpecificDataArea(uint64_t address, bool indirect) { return true; } @@ -1246,77 +1246,77 @@ class CallFrameInfo::Reporter { // The CFI entry at OFFSET ends too early to be well-formed. KIND // indicates what kind of entry it is; KIND can be kUnknown if we // haven't parsed enough of the entry to tell yet. - virtual void Incomplete(uint64 offset, CallFrameInfo::EntryKind kind); + virtual void Incomplete(uint64_t offset, CallFrameInfo::EntryKind kind); // The .eh_frame data has a four-byte zero at OFFSET where the next // entry's length would be; this is a terminator. However, the buffer // length as given to the CallFrameInfo constructor says there should be // more data. - virtual void EarlyEHTerminator(uint64 offset); + virtual void EarlyEHTerminator(uint64_t offset); // The FDE at OFFSET refers to the CIE at CIE_OFFSET, but the // section is not that large. - virtual void CIEPointerOutOfRange(uint64 offset, uint64 cie_offset); + virtual void CIEPointerOutOfRange(uint64_t offset, uint64_t cie_offset); // The FDE at OFFSET refers to the CIE at CIE_OFFSET, but the entry // there is not a CIE. - virtual void BadCIEId(uint64 offset, uint64 cie_offset); + virtual void BadCIEId(uint64_t offset, uint64_t cie_offset); // The FDE at OFFSET refers to a CIE with an address size we don't know how // to handle. - virtual void UnexpectedAddressSize(uint64 offset, uint8_t address_size); + virtual void UnexpectedAddressSize(uint64_t offset, uint8_t address_size); // The FDE at OFFSET refers to a CIE with an segment descriptor size we // don't know how to handle. - virtual void UnexpectedSegmentSize(uint64 offset, uint8_t segment_size); + virtual void UnexpectedSegmentSize(uint64_t offset, uint8_t segment_size); // The FDE at OFFSET refers to a CIE with version number VERSION, // which we don't recognize. We cannot parse DWARF CFI if it uses // a version number we don't recognize. - virtual void UnrecognizedVersion(uint64 offset, int version); + virtual void UnrecognizedVersion(uint64_t offset, int version); // The FDE at OFFSET refers to a CIE with augmentation AUGMENTATION, // which we don't recognize. We cannot parse DWARF CFI if it uses // augmentations we don't recognize. - virtual void UnrecognizedAugmentation(uint64 offset, + virtual void UnrecognizedAugmentation(uint64_t offset, const string &augmentation); // The pointer encoding ENCODING, specified by the CIE at OFFSET, is not // a valid encoding. - virtual void InvalidPointerEncoding(uint64 offset, uint8 encoding); + virtual void InvalidPointerEncoding(uint64_t offset, uint8_t encoding); // The pointer encoding ENCODING, specified by the CIE at OFFSET, depends // on a base address which has not been supplied. - virtual void UnusablePointerEncoding(uint64 offset, uint8 encoding); + virtual void UnusablePointerEncoding(uint64_t offset, uint8_t encoding); // The CIE at OFFSET contains a DW_CFA_restore instruction at // INSN_OFFSET, which may not appear in a CIE. - virtual void RestoreInCIE(uint64 offset, uint64 insn_offset); + virtual void RestoreInCIE(uint64_t offset, uint64_t insn_offset); // The entry at OFFSET, of kind KIND, has an unrecognized // instruction at INSN_OFFSET. - virtual void BadInstruction(uint64 offset, CallFrameInfo::EntryKind kind, - uint64 insn_offset); + virtual void BadInstruction(uint64_t offset, CallFrameInfo::EntryKind kind, + uint64_t insn_offset); // The instruction at INSN_OFFSET in the entry at OFFSET, of kind // KIND, establishes a rule that cites the CFA, but we have not // established a CFA rule yet. - virtual void NoCFARule(uint64 offset, CallFrameInfo::EntryKind kind, - uint64 insn_offset); + virtual void NoCFARule(uint64_t offset, CallFrameInfo::EntryKind kind, + uint64_t insn_offset); // The instruction at INSN_OFFSET in the entry at OFFSET, of kind // KIND, is a DW_CFA_restore_state instruction, but the stack of // saved states is empty. - virtual void EmptyStateStack(uint64 offset, CallFrameInfo::EntryKind kind, - uint64 insn_offset); + virtual void EmptyStateStack(uint64_t offset, CallFrameInfo::EntryKind kind, + uint64_t insn_offset); // The DW_CFA_remember_state instruction at INSN_OFFSET in the entry // at OFFSET, of kind KIND, would restore a state that has no CFA // rule, whereas the current state does have a CFA rule. This is // bogus input, which the CallFrameInfo::Handler interface doesn't // (and shouldn't) have any way to report. - virtual void ClearingCFARule(uint64 offset, CallFrameInfo::EntryKind kind, - uint64 insn_offset); + virtual void ClearingCFARule(uint64_t offset, CallFrameInfo::EntryKind kind, + uint64_t insn_offset); protected: // The name of the file whose CFI we're reading. |