LLVM
8.0.1
include
llvm
DebugInfo
PDB
PDBContext.h
Go to the documentation of this file.
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
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
llvm::getFunctionName
static StringRef getFunctionName(TargetLowering::CallLoweringInfo &CLI)
Definition:
AVRISelLowering.cpp:915
llvm
This class represents lattice values for constants.
Definition:
AllocatorList.h:24
llvm::DINameKind
DINameKind
A DINameKind is passed to name search methods to specify a preference regarding the type of name reso...
Definition:
DIContext.h:119
llvm::DILineInfo
A format-neutral container for source line information.
Definition:
DIContext.h:31
llvm::pdb::PDBContext::classof
static bool classof(const DIContext *DICtx)
Definition:
PDBContext.h:40
llvm::pdb::PDBContext
PDBContext This data structure is the top level entity that deals with PDB debug information parsing...
Definition:
PDBContext.h:33
llvm::DIContext::getKind
DIContextKind getKind() const
Definition:
DIContext.h:198
llvm::object::COFFObjectFile
Definition:
COFF.h:763
IPDBSession.h
llvm::DIDumpOptions
Container for dump options that control which debug information will be dumped.
Definition:
DIContext.h:159
DIContext.h
llvm::dump
void dump(const SparseBitVector< ElementSize > &LHS, raw_ostream &out)
Definition:
SparseBitVector.h:877
llvm::DILineInfoSpecifier
Controls which fields of DILineInfo container should be filled with data.
Definition:
DIContext.h:123
llvm::DIInliningInfo
A format-neutral container for inlined code description.
Definition:
DIContext.h:78
llvm::DIContext
Definition:
DIContext.h:188
llvm::HighlightColor::Address
object
llvm::SmallVector
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
Definition:
SmallVector.h:847
Size
uint32_t Size
Definition:
Profile.cpp:47
llvm::raw_ostream
This class implements an extremely fast bulk output stream that can only output to a stream...
Definition:
raw_ostream.h:46
Generated on Sun Dec 20 2020 13:53:20 for LLVM by
1.8.13