| Index: src/common/dwarf/dwarf2reader.h
|
| diff --git a/src/common/dwarf/dwarf2reader.h b/src/common/dwarf/dwarf2reader.h
|
| index e4f7f495c16a37adf90b9b3771576d19bee48e18..1f5b37a04d9d34c120bb8b70c3aaf7c9a814ce18 100644
|
| --- a/src/common/dwarf/dwarf2reader.h
|
| +++ b/src/common/dwarf/dwarf2reader.h
|
| @@ -40,6 +40,8 @@
|
| #ifndef COMMON_DWARF_DWARF2READER_H__
|
| #define COMMON_DWARF_DWARF2READER_H__
|
|
|
| +#include <stdint.h>
|
| +
|
| #include <list>
|
| #include <map>
|
| #include <string>
|
| @@ -58,7 +60,7 @@ class LineInfoHandler;
|
|
|
| // 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 char*, uint64> > SectionMap;
|
| +typedef std::map<string, std::pair<const uint8_t *, uint64> > SectionMap;
|
| typedef std::list<std::pair<enum DwarfAttribute, enum DwarfForm> >
|
| AttributeList;
|
| typedef AttributeList::iterator AttributeIterator;
|
| @@ -85,7 +87,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 char* buffer_, uint64 buffer_length,
|
| + LineInfo(const uint8_t *buffer_, uint64 buffer_length,
|
| ByteReader* reader, LineInfoHandler* handler);
|
|
|
| virtual ~LineInfo() {
|
| @@ -111,7 +113,7 @@ class LineInfo {
|
| static bool ProcessOneOpcode(ByteReader* reader,
|
| LineInfoHandler* handler,
|
| const struct LineInfoHeader &header,
|
| - const char* start,
|
| + const uint8_t *start,
|
| struct LineStateMachine* lsm,
|
| size_t* len,
|
| uintptr pc,
|
| @@ -139,11 +141,11 @@ class LineInfo {
|
| // buffer is the buffer for our line info, starting at exactly where
|
| // the line info to read is. after_header is the place right after
|
| // the end of the line information header.
|
| - const char* buffer_;
|
| + const uint8_t *buffer_;
|
| #ifndef NDEBUG
|
| uint64 buffer_length_;
|
| #endif
|
| - const char* after_header_;
|
| + const uint8_t *after_header_;
|
| };
|
|
|
| // This class is the main interface between the line info reader and
|
| @@ -268,29 +270,27 @@ class CompilationUnit {
|
|
|
| // Processes a single DIE for this compilation unit and return a new
|
| // pointer just past the end of it
|
| - const char* ProcessDIE(uint64 dieoffset,
|
| - const char* start,
|
| - const Abbrev& abbrev);
|
| + const uint8_t *ProcessDIE(uint64 dieoffset,
|
| + const uint8_t *start,
|
| + const Abbrev& abbrev);
|
|
|
| // Processes a single attribute and return a new pointer just past the
|
| // end of it
|
| - const char* ProcessAttribute(uint64 dieoffset,
|
| - const char* start,
|
| - enum DwarfAttribute attr,
|
| - enum DwarfForm form);
|
| + const uint8_t *ProcessAttribute(uint64 dieoffset,
|
| + const uint8_t *start,
|
| + enum DwarfAttribute attr,
|
| + enum DwarfForm form);
|
|
|
| // Processes all DIEs for this compilation unit
|
| void ProcessDIEs();
|
|
|
| // Skips the die with attributes specified in ABBREV starting at
|
| // START, and return the new place to position the stream to.
|
| - const char* SkipDIE(const char* start,
|
| - const Abbrev& abbrev);
|
| + const uint8_t *SkipDIE(const uint8_t *start, const Abbrev& abbrev);
|
|
|
| // Skips the attribute starting at START, with FORM, and return the
|
| // new place to position the stream to.
|
| - const char* SkipAttribute(const char* start,
|
| - enum DwarfForm form);
|
| + const uint8_t *SkipAttribute(const uint8_t *start, enum DwarfForm form);
|
|
|
| // Offset from section start is the offset of this compilation unit
|
| // from the beginning of the .debug_info section.
|
| @@ -299,9 +299,9 @@ class CompilationUnit {
|
| // 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 char* buffer_;
|
| + const uint8_t *buffer_;
|
| uint64 buffer_length_;
|
| - const char* after_header_;
|
| + const uint8_t *after_header_;
|
|
|
| // The associated ByteReader that handles endianness issues for us
|
| ByteReader* reader_;
|
| @@ -320,7 +320,7 @@ class CompilationUnit {
|
| // String section buffer and length, if we have a string section.
|
| // This is here to avoid doing a section lookup for strings in
|
| // ProcessAttribute, which is in the hot path for DWARF2 reading.
|
| - const char* string_buffer_;
|
| + const uint8_t *string_buffer_;
|
| uint64 string_buffer_length_;
|
| };
|
|
|
| @@ -383,7 +383,7 @@ class Dwarf2Handler {
|
| virtual void ProcessAttributeBuffer(uint64 offset,
|
| enum DwarfAttribute attr,
|
| enum DwarfForm form,
|
| - const char* data,
|
| + const uint8_t *data,
|
| uint64 len) { }
|
|
|
| // Called when we have an attribute with string data to give to our handler.
|
| @@ -639,7 +639,7 @@ class CallFrameInfo {
|
| // The mechanics of C++ exception handling, personality routines,
|
| // and language-specific data areas are described here, rather nicely:
|
| // http://www.codesourcery.com/public/cxx-abi/abi-eh.html
|
| - CallFrameInfo(const char *buffer, size_t buffer_length,
|
| + CallFrameInfo(const uint8_t *buffer, size_t buffer_length,
|
| ByteReader *reader, Handler *handler, Reporter *reporter,
|
| bool eh_frame = false)
|
| : buffer_(buffer), buffer_length_(buffer_length),
|
| @@ -667,7 +667,7 @@ class CallFrameInfo {
|
| size_t offset;
|
|
|
| // The start of this entry in the buffer.
|
| - const char *start;
|
| + const uint8_t *start;
|
|
|
| // Which kind of entry this is.
|
| //
|
| @@ -678,16 +678,16 @@ class CallFrameInfo {
|
|
|
| // The end of this entry's common prologue (initial length and id), and
|
| // the start of this entry's kind-specific fields.
|
| - const char *fields;
|
| + const uint8_t *fields;
|
|
|
| // The start of this entry's instructions.
|
| - const char *instructions;
|
| + const uint8_t *instructions;
|
|
|
| // The address past the entry's last byte in the buffer. (Note that
|
| // since offset points to the entry's initial length field, and the
|
| // length field is the number of bytes after that field, this is not
|
| // simply buffer_ + offset + length.)
|
| - const char *end;
|
| + const uint8_t *end;
|
|
|
| // 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.
|
| @@ -764,7 +764,7 @@ class CallFrameInfo {
|
| // true. On failure, report the problem, and return false. Even if we
|
| // return false, set ENTRY->end to the first byte after the entry if we
|
| // were able to figure that out, or NULL if we weren't.
|
| - bool ReadEntryPrologue(const char *cursor, Entry *entry);
|
| + bool ReadEntryPrologue(const uint8_t *cursor, Entry *entry);
|
|
|
| // Parse the fields of a CIE after the entry prologue, including any 'z'
|
| // augmentation data. Assume that the 'Entry' fields of CIE are
|
| @@ -792,7 +792,7 @@ class CallFrameInfo {
|
| }
|
|
|
| // The contents of the DWARF .debug_info section we're parsing.
|
| - const char *buffer_;
|
| + const uint8_t *buffer_;
|
| size_t buffer_length_;
|
|
|
| // For reading multi-byte values with the appropriate endianness.
|
|
|