LCOV - code coverage report
Current view: top level - include/llvm/DebugInfo/PDB - PDBContext.h (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 0 1 0.0 %
Date: 2017-09-14 15:23:50 Functions: 0 2 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===-- PDBContext.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_PDB_PDBCONTEXT_H
      11             : #define LLVM_DEBUGINFO_PDB_PDBCONTEXT_H
      12             : 
      13             : #include "llvm/DebugInfo/DIContext.h"
      14             : #include "llvm/DebugInfo/PDB/IPDBSession.h"
      15             : #include <cstdint>
      16             : #include <memory>
      17             : #include <string>
      18             : 
      19             : namespace llvm {
      20             : 
      21             : namespace object {
      22             : class COFFObjectFile;
      23             : } // end namespace object
      24             : 
      25             : namespace pdb {
      26             : 
      27             :   /// PDBContext
      28             :   /// This data structure is the top level entity that deals with PDB debug
      29             :   /// information parsing.  This data structure exists only when there is a
      30             :   /// need for a transparent interface to different debug information formats
      31             :   /// (e.g. PDB and DWARF).  More control and power over the debug information
      32             :   /// access can be had by using the PDB interfaces directly.
      33           0 :   class PDBContext : public DIContext {
      34             :   public:
      35             :     PDBContext(const object::COFFObjectFile &Object,
      36             :                std::unique_ptr<IPDBSession> PDBSession);
      37             :     PDBContext(PDBContext &) = delete;
      38             :     PDBContext &operator=(PDBContext &) = delete;
      39             : 
      40             :     static bool classof(const DIContext *DICtx) {
      41             :       return DICtx->getKind() == CK_PDB;
      42             :     }
      43             : 
      44             :     void dump(raw_ostream &OS, DIDumpOptions DIDumpOpts) override;
      45             : 
      46             :     DILineInfo getLineInfoForAddress(
      47             :         uint64_t Address,
      48             :         DILineInfoSpecifier Specifier = DILineInfoSpecifier()) override;
      49             :     DILineInfoTable getLineInfoForAddressRange(
      50             :         uint64_t Address, uint64_t Size,
      51             :         DILineInfoSpecifier Specifier = DILineInfoSpecifier()) override;
      52             :     DIInliningInfo getInliningInfoForAddress(
      53             :         uint64_t Address,
      54             :         DILineInfoSpecifier Specifier = DILineInfoSpecifier()) override;
      55             : 
      56             :   private:
      57             :     std::string getFunctionName(uint64_t Address, DINameKind NameKind) const;
      58             :     std::unique_ptr<IPDBSession> Session;
      59             :   };
      60             : 
      61             : } // end namespace pdb
      62             : 
      63             : } // end namespace llvm
      64             : 
      65             : #endif // LLVM_DEBUGINFO_PDB_PDBCONTEXT_H

Generated by: LCOV version 1.13