LCOV - code coverage report
Current view: top level - include/llvm/DebugInfo/DWARF - DWARFGdbIndex.h (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 1 1 100.0 %
Date: 2018-07-13 00:08:38 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===- DWARFGdbIndex.h ------------------------------------------*- C++ -*-===//
       2             : //
       3             : //                     The LLVM Compiler Infrastructure
       4             : //
       5             : // This file is distributed under the University of Illinois Open Source
       6             : // License. See LICENSE.TXT for details.
       7             : //
       8             : //===----------------------------------------------------------------------===//
       9             : 
      10             : #ifndef LLVM_DEBUGINFO_DWARF_DWARFGDBINDEX_H
      11             : #define LLVM_DEBUGINFO_DWARF_DWARFGDBINDEX_H
      12             : 
      13             : #include "llvm/ADT/SmallVector.h"
      14             : #include "llvm/ADT/StringRef.h"
      15             : #include "llvm/Support/DataExtractor.h"
      16             : #include <cstdint>
      17             : #include <utility>
      18             : 
      19             : namespace llvm {
      20             : 
      21             : class raw_ostream;
      22             : 
      23          16 : class DWARFGdbIndex {
      24             :   uint32_t Version;
      25             : 
      26             :   uint32_t CuListOffset;
      27             :   uint32_t AddressAreaOffset;
      28             :   uint32_t SymbolTableOffset;
      29             :   uint32_t ConstantPoolOffset;
      30             : 
      31             :   struct CompUnitEntry {
      32             :     uint64_t Offset; /// Offset of a CU in the .debug_info section.
      33             :     uint64_t Length; /// Length of that CU.
      34             :   };
      35             :   SmallVector<CompUnitEntry, 0> CuList;
      36             : 
      37             :   struct AddressEntry {
      38             :     uint64_t LowAddress;  /// The low address.
      39             :     uint64_t HighAddress; /// The high address.
      40             :     uint32_t CuIndex;     /// The CU index.
      41             :   };
      42             :   SmallVector<AddressEntry, 0> AddressArea;
      43             : 
      44             :   struct SymTableEntry {
      45             :     uint32_t NameOffset; /// Offset of the symbol's name in the constant pool.
      46             :     uint32_t VecOffset;  /// Offset of the CU vector in the constant pool.
      47             :   };
      48             :   SmallVector<SymTableEntry, 0> SymbolTable;
      49             : 
      50             :   /// Each value is CU index + attributes.
      51             :   SmallVector<std::pair<uint32_t, SmallVector<uint32_t, 0>>, 0>
      52             :       ConstantPoolVectors;
      53             : 
      54             :   StringRef ConstantPoolStrings;
      55             :   uint32_t StringPoolOffset;
      56             : 
      57             :   void dumpCUList(raw_ostream &OS) const;
      58             :   void dumpAddressArea(raw_ostream &OS) const;
      59             :   void dumpSymbolTable(raw_ostream &OS) const;
      60             :   void dumpConstantPool(raw_ostream &OS) const;
      61             : 
      62             :   bool parseImpl(DataExtractor Data);
      63             : 
      64             : public:
      65             :   void dump(raw_ostream &OS);
      66             :   void parse(DataExtractor Data);
      67             : 
      68             :   bool HasContent = false;
      69             :   bool HasError = false;
      70             : };
      71             : 
      72             : } // end namespace llvm
      73             : 
      74             : #endif // LLVM_DEBUGINFO_DWARF_DWARFGDBINDEX_H

Generated by: LCOV version 1.13