Coverage Report

Created: 2019-07-24 05:18

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/include/llvm/DebugInfo/PDB/IPDBSession.h
Line
Count
Source
1
//===- IPDBSession.h - base interface for a PDB symbol context --*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef LLVM_DEBUGINFO_PDB_IPDBSESSION_H
10
#define LLVM_DEBUGINFO_PDB_IPDBSESSION_H
11
12
#include "PDBSymbol.h"
13
#include "PDBTypes.h"
14
#include "llvm/ADT/StringRef.h"
15
#include "llvm/Support/Casting.h"
16
#include <memory>
17
18
namespace llvm {
19
namespace pdb {
20
class PDBSymbolCompiland;
21
class PDBSymbolExe;
22
23
/// IPDBSession defines an interface used to provide a context for querying
24
/// debug information from a debug data source (for example, a PDB).
25
class IPDBSession {
26
public:
27
  virtual ~IPDBSession();
28
29
  virtual uint64_t getLoadAddress() const = 0;
30
  virtual bool setLoadAddress(uint64_t Address) = 0;
31
  virtual std::unique_ptr<PDBSymbolExe> getGlobalScope() = 0;
32
  virtual std::unique_ptr<PDBSymbol>
33
  getSymbolById(SymIndexId SymbolId) const = 0;
34
35
  virtual bool addressForVA(uint64_t VA, uint32_t &Section,
36
                            uint32_t &Offset) const = 0;
37
  virtual bool addressForRVA(uint32_t RVA, uint32_t &Section,
38
                             uint32_t &Offset) const = 0;
39
40
  template <typename T>
41
108
  std::unique_ptr<T> getConcreteSymbolById(SymIndexId SymbolId) const {
42
108
    return unique_dyn_cast_or_null<T>(getSymbolById(SymbolId));
43
108
  }
Unexecuted instantiation: std::__1::unique_ptr<llvm::pdb::PDBSymbolData, std::__1::default_delete<llvm::pdb::PDBSymbolData> > llvm::pdb::IPDBSession::getConcreteSymbolById<llvm::pdb::PDBSymbolData>(unsigned int) const
std::__1::unique_ptr<llvm::pdb::PDBSymbolTypeBuiltin, std::__1::default_delete<llvm::pdb::PDBSymbolTypeBuiltin> > llvm::pdb::IPDBSession::getConcreteSymbolById<llvm::pdb::PDBSymbolTypeBuiltin>(unsigned int) const
Line
Count
Source
41
46
  std::unique_ptr<T> getConcreteSymbolById(SymIndexId SymbolId) const {
42
46
    return unique_dyn_cast_or_null<T>(getSymbolById(SymbolId));
43
46
  }
std::__1::unique_ptr<llvm::pdb::PDBSymbolCompiland, std::__1::default_delete<llvm::pdb::PDBSymbolCompiland> > llvm::pdb::IPDBSession::getConcreteSymbolById<llvm::pdb::PDBSymbolCompiland>(unsigned int) const
Line
Count
Source
41
62
  std::unique_ptr<T> getConcreteSymbolById(SymIndexId SymbolId) const {
42
62
    return unique_dyn_cast_or_null<T>(getSymbolById(SymbolId));
43
62
  }
44
45
  virtual std::unique_ptr<PDBSymbol>
46
  findSymbolByAddress(uint64_t Address, PDB_SymType Type) const = 0;
47
  virtual std::unique_ptr<PDBSymbol>
48
  findSymbolByRVA(uint32_t RVA, PDB_SymType Type) const = 0;
49
  virtual std::unique_ptr<PDBSymbol>
50
  findSymbolBySectOffset(uint32_t Sect, uint32_t Offset,
51
                         PDB_SymType Type) const = 0;
52
53
  virtual std::unique_ptr<IPDBEnumLineNumbers>
54
  findLineNumbers(const PDBSymbolCompiland &Compiland,
55
                  const IPDBSourceFile &File) const = 0;
56
  virtual std::unique_ptr<IPDBEnumLineNumbers>
57
  findLineNumbersByAddress(uint64_t Address, uint32_t Length) const = 0;
58
  virtual std::unique_ptr<IPDBEnumLineNumbers>
59
  findLineNumbersByRVA(uint32_t RVA, uint32_t Length) const = 0;
60
  virtual std::unique_ptr<IPDBEnumLineNumbers>
61
  findLineNumbersBySectOffset(uint32_t Section, uint32_t Offset,
62
                              uint32_t Length) const = 0;
63
64
  virtual std::unique_ptr<IPDBEnumSourceFiles>
65
  findSourceFiles(const PDBSymbolCompiland *Compiland, llvm::StringRef Pattern,
66
                  PDB_NameSearchFlags Flags) const = 0;
67
  virtual std::unique_ptr<IPDBSourceFile>
68
  findOneSourceFile(const PDBSymbolCompiland *Compiland,
69
                    llvm::StringRef Pattern,
70
                    PDB_NameSearchFlags Flags) const = 0;
71
  virtual std::unique_ptr<IPDBEnumChildren<PDBSymbolCompiland>>
72
  findCompilandsForSourceFile(llvm::StringRef Pattern,
73
                              PDB_NameSearchFlags Flags) const = 0;
74
  virtual std::unique_ptr<PDBSymbolCompiland>
75
  findOneCompilandForSourceFile(llvm::StringRef Pattern,
76
                                PDB_NameSearchFlags Flags) const = 0;
77
78
  virtual std::unique_ptr<IPDBEnumSourceFiles> getAllSourceFiles() const = 0;
79
  virtual std::unique_ptr<IPDBEnumSourceFiles>
80
  getSourceFilesForCompiland(const PDBSymbolCompiland &Compiland) const = 0;
81
  virtual std::unique_ptr<IPDBSourceFile>
82
  getSourceFileById(uint32_t FileId) const = 0;
83
84
  virtual std::unique_ptr<IPDBEnumDataStreams> getDebugStreams() const = 0;
85
86
  virtual std::unique_ptr<IPDBEnumTables> getEnumTables() const = 0;
87
88
  virtual std::unique_ptr<IPDBEnumInjectedSources>
89
  getInjectedSources() const = 0;
90
91
  virtual std::unique_ptr<IPDBEnumSectionContribs>
92
  getSectionContribs() const = 0;
93
94
  virtual std::unique_ptr<IPDBEnumFrameData>
95
  getFrameData() const = 0;
96
};
97
} // namespace pdb
98
} // namespace llvm
99
100
#endif