| Index: obsolete/gdb-utils/src/dwarf_reader/dwarf_reader.h
|
| diff --git a/obsolete/gdb-utils/src/dwarf_reader/dwarf_reader.h b/obsolete/gdb-utils/src/dwarf_reader/dwarf_reader.h
|
| deleted file mode 100644
|
| index 2d9414fe2faa28328394b52aaa1912f64e1ff33f..0000000000000000000000000000000000000000
|
| --- a/obsolete/gdb-utils/src/dwarf_reader/dwarf_reader.h
|
| +++ /dev/null
|
| @@ -1,230 +0,0 @@
|
| -// Copyright 2010 Google, Inc. All Rights reserved
|
| -//
|
| -// Redistribution and use in source and binary forms, with or without
|
| -// modification, are permitted provided that the following conditions are
|
| - // met:
|
| -//
|
| -// * Redistributions of source code must retain the above copyright
|
| -// notice, this list of conditions and the following disclaimer.
|
| -// * Redistributions in binary form must reproduce the above
|
| -// copyright notice, this list of conditions and the following disclaimer
|
| -// in the documentation and/or other materials provided with the
|
| -// distribution.
|
| -// * Neither the name of Google Inc. nor the names of its
|
| -// contributors may be used to endorse or promote products derived from
|
| -// this software without specific prior written permission.
|
| -//
|
| -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| -
|
| -
|
| -// This file contains the interface for processing DWARF Data
|
| -
|
| -#ifndef DWARF_READER_DWARF_READER_H_
|
| -#define DWARF_READER_DWARF_READER_H_
|
| -
|
| -#include "common/types.h"
|
| -#include "common/dwarf/dwarf2enums.h"
|
| -
|
| -namespace dwarf_reader {
|
| -
|
| -using dwarf2reader::DwarfAttribute;
|
| -using dwarf2reader::DwarfForm;
|
| -using dwarf2reader::DwarfTag;
|
| -
|
| -class IDwarfReader {
|
| -// All offsets are from the beginning of the .debug_info for this module
|
| -// and when combined with the module uniquely identify the object. In
|
| -// addition all notifications function which can have children return a
|
| -// context as a void *, which be passed into any child references to
|
| -// facility building of tree structure. The order of calls and the values
|
| - // they pass can be seen bellow:
|
| -//
|
| -// root = StartCompilationUnit(...)
|
| -// child = StartDIE(root, ....)
|
| -// Property(child, ....)
|
| -// sub = StartDIE(child, ...)
|
| -// Property(sub, ....)
|
| -// EndDIE(sub)
|
| -// EndDIE(child)
|
| -// AddDir(root, ...)
|
| -// AddFile(root, ...)
|
| -// AddLine(root, ...)
|
| -// EndComplicationUnit(root)
|
| -
|
| - public:
|
| - // 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 void *StartCompilationUnit(uint64 offset, uint8 address_size,
|
| - uint8 offset_size, uint64 cu_length,
|
| - uint8 dwarf_version) = 0;
|
| -
|
| - // Called when finished processing the CompilationUnit at OFFSET.
|
| - // CU's are in the form of a linear list, so each one forms the root of
|
| - // a DIE tree.
|
| - virtual void EndCompilationUnit(void *ctx, uint64 offset) = 0;
|
| -
|
| - // 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 void *StartDIE(void *ctx, uint64 parent, uint64 offset, enum DwarfTag tag) = 0;
|
| -
|
| - // 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(void *ctx, uint64 offset) = 0;
|
| -
|
| - // 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(void *ctx,
|
| - uint64 offset,
|
| - uint64 parent,
|
| - enum DwarfAttribute attr,
|
| - enum DwarfForm form,
|
| - uint64 data) = 0;
|
| -
|
| - // 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(void *ctx,
|
| - uint64 offset,
|
| - uint64 parent,
|
| - enum DwarfAttribute attr,
|
| - enum DwarfForm form,
|
| - int64 data) = 0;
|
| -
|
| - // 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(void *ctx,
|
| - uint64 offset,
|
| - uint64 parent,
|
| - enum DwarfAttribute attr,
|
| - enum DwarfForm form,
|
| - uint64 data) = 0;
|
| -
|
| - // 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
|
| - // .debug_info section. Its name is ATTR, its form is FORM, DATA points to
|
| - // 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(void *ctx,
|
| - uint64 offset,
|
| - uint64 parent,
|
| - enum DwarfAttribute attr,
|
| - enum DwarfForm form,
|
| - const char* data,
|
| - uint64 len) = 0;
|
| -
|
| - // 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(void *ctx,
|
| - uint64 offset,
|
| - uint64 parent,
|
| - enum DwarfAttribute attr,
|
| - enum DwarfForm form,
|
| - const char* data) = 0;
|
| -
|
| - // Called when we define a directory. NAME is the directory name,
|
| - // DIR_NUM is one based directory index number. The context will
|
| - // be the one passe back by StartCompileUnit.
|
| - virtual void DefineDir(void *ctx, const char *name, uint32 dir_num) = 0;
|
| -
|
| - // Called when we define a file. NAME is the directory name,
|
| - // DIR_NUM is one based directory index number.
|
| - virtual void DefineFile(void *ctx, const char *name, int32 file_num,
|
| - uint32 dir_num, uint64 mod_time,
|
| - uint64 length) = 0;
|
| -
|
| - // 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
|
| - // length of its machine code in bytes, FILE_NUM is the file number
|
| - // 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(void *ctx, uint64 address, uint64 length, uint32 file_num,
|
| - uint32 line_num, uint32 column_num) = 0;
|
| -
|
| - // Called when the location list reader has a new location list entry
|
| - // ready for us.
|
| - // Params:
|
| - // offset: offset of this entry from the beginning of the
|
| - // .debug_loc section. This is used elsewhere to identify
|
| - // the location list.
|
| - //
|
| - // is_first_entry: If true, signifies that this entry is the first entry
|
| - // in a new list. The DWARF info refers to lists by their
|
| - // first entry, so if is_first_entry is false it's not
|
| - // particularly important to remember the value of offset.
|
| - //
|
| - // lowPc, highPc: Range of program counter values for which this location
|
| - // entry is valid.
|
| - //
|
| - // data, dataSize: Defines an array of bytes containg DWARF VM
|
| - // instructions that can be used to decode the address
|
| - // encoded in this loc entry.
|
| - virtual void AddLocListEntry(
|
| - uint64 offset,
|
| - bool is_first_entry,
|
| - uint64 lowPc,
|
| - uint64 highPc,
|
| - const void* data,
|
| - size_t dataSize) = 0;
|
| -
|
| - //
|
| - // Call Frame Information (CFI) handling
|
| - //
|
| -
|
| - enum CFI_RuleType {
|
| - CFIRT_UNDEFINED,
|
| - CFIRT_SAMEVALUE,
|
| - CFIRT_OFFSET,
|
| - CFIRT_VALOFFSET,
|
| - CFIRT_REGISTER,
|
| - CFIRT_EXPRESSION,
|
| - CFIRT_VALEXPRESSION
|
| - };
|
| -
|
| - virtual bool BeginCfiEntry (
|
| - size_t offset,
|
| - uint64 address,
|
| - uint64 length,
|
| - uint8 version,
|
| - const char* augmentation,
|
| - unsigned return_address) = 0;
|
| -
|
| - virtual bool AddCfiRule(
|
| - uint64 address,
|
| - int reg,
|
| - CFI_RuleType ruleType,
|
| - int base_register,
|
| - int32 offset,
|
| - const void* expression,
|
| - uint32 expressionLength) = 0;
|
| -
|
| - virtual bool EndCfiEntry() = 0;
|
| -};
|
| -
|
| -
|
| -} // namespace dwarf_reader
|
| -
|
| -#endif // DWARF_READER_DWARF_READER_H_
|
| -
|
|
|