LLVM
23.0.0git
include
llvm
DebugInfo
GSYM
GsymContext.h
Go to the documentation of this file.
1
//===-- GsymContext.h --------------------------------------------------===//
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_GSYM_GSYMCONTEXT_H
10
#define LLVM_DEBUGINFO_GSYM_GSYMCONTEXT_H
11
12
#include "
llvm/DebugInfo/DIContext.h
"
13
#include <cstdint>
14
#include <memory>
15
16
namespace
llvm
{
17
18
namespace
gsym
{
19
20
class
GsymReader
;
21
22
/// GSYM DI Context
23
/// This data structure is the top level entity that deals with GSYM
24
/// symbolication.
25
/// This data structure exists only when there is a need for a transparent
26
/// interface to different symbolication formats (e.g. GSYM, PDB and DWARF).
27
/// More control and power over the debug information access can be had by using
28
/// the GSYM interfaces directly.
29
class
LLVM_ABI
GsymContext
:
public
DIContext
{
30
public
:
31
GsymContext
(std::unique_ptr<GsymReader> Reader);
32
~GsymContext
()
override
;
33
34
GsymContext
(
GsymContext
&) =
delete
;
35
GsymContext
&
operator=
(
GsymContext
&) =
delete
;
36
37
static
bool
classof
(
const
DIContext
*DICtx) {
38
return
DICtx->
getKind
() ==
CK_GSYM
;
39
}
40
41
void
dump
(
raw_ostream
&OS,
DIDumpOptions
DIDumpOpts)
override
;
42
43
std::optional<DILineInfo> getLineInfoForAddress(
44
object::SectionedAddress
Address
,
45
DILineInfoSpecifier
Specifier =
DILineInfoSpecifier
())
override
;
46
std::optional<DILineInfo>
47
getLineInfoForDataAddress(
object::SectionedAddress
Address
)
override
;
48
DILineInfoTable
getLineInfoForAddressRange(
49
object::SectionedAddress
Address
,
uint64_t
Size
,
50
DILineInfoSpecifier
Specifier =
DILineInfoSpecifier
())
override
;
51
DIInliningInfo
getInliningInfoForAddress(
52
object::SectionedAddress
Address
,
53
DILineInfoSpecifier
Specifier =
DILineInfoSpecifier
())
override
;
54
55
std::vector<DILocal>
56
getLocalsForAddress(
object::SectionedAddress
Address
)
override
;
57
58
private
:
59
const
std::unique_ptr<GsymReader> Reader;
60
};
61
62
}
// end namespace gsym
63
64
}
// end namespace llvm
65
66
#endif
// LLVM_DEBUGINFO_GSYM_GSYMCONTEXT_H
LLVM_ABI
#define LLVM_ABI
Definition
Compiler.h:213
DIContext.h
InlinePriorityMode::Size
@ Size
Definition
InlineOrder.cpp:25
llvm::DIContext::CK_GSYM
@ CK_GSYM
Definition
DIContext.h:244
llvm::DIContext::getKind
DIContextKind getKind() const
Definition
DIContext.h:249
llvm::DIContext::DIContext
DIContext(DIContextKind K)
Definition
DIContext.h:246
llvm::DIInliningInfo
A format-neutral container for inlined code description.
Definition
DIContext.h:94
llvm::gsym::GsymContext::classof
static bool classof(const DIContext *DICtx)
Definition
GsymContext.h:37
llvm::gsym::GsymContext::operator=
GsymContext & operator=(GsymContext &)=delete
llvm::gsym::GsymContext::GsymContext
GsymContext(GsymContext &)=delete
llvm::gsym::GsymContext::GsymContext
GsymContext(std::unique_ptr< GsymReader > Reader)
Definition
GsymContext.cpp:18
llvm::gsym::GsymContext::~GsymContext
~GsymContext() override
llvm::gsym::GsymReader
GsymReader is used to read GSYM data from a file or buffer.
Definition
GsymReader.h:48
llvm::raw_ostream
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition
raw_ostream.h:53
uint64_t
llvm::gsym
Definition
CallSiteInfo.h:27
llvm::gsym::dump
void dump(raw_ostream &OS, const StringTable &S, uint8_t StringOffsetSize)
Definition
StringTable.h:37
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition
FunctionInfo.h:25
llvm::DILineInfoTable
SmallVector< std::pair< uint64_t, DILineInfo >, 16 > DILineInfoTable
Definition
DIContext.h:91
llvm::CaptureComponents::Address
@ Address
Definition
ModRef.h:368
llvm::DIDumpOptions
Container for dump options that control which debug information will be dumped.
Definition
DIContext.h:196
llvm::DILineInfoSpecifier
Controls which fields of DILineInfo container should be filled with data.
Definition
DIContext.h:146
llvm::object::SectionedAddress
Definition
ObjectFile.h:147
Generated on
for LLVM by
1.14.0