LLDB
mainline
llvm-project
lldb
source
Plugins
InstrumentationRuntime
ASan
InstrumentationRuntimeASan.h
Go to the documentation of this file.
1
//===-- InstrumentationRuntimeASan.h ----------------------------*- 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 LLDB_SOURCE_PLUGINS_INSTRUMENTATIONRUNTIME_ASAN_INSTRUMENTATIONRUNTIMEASAN_H
10
#define LLDB_SOURCE_PLUGINS_INSTRUMENTATIONRUNTIME_ASAN_INSTRUMENTATIONRUNTIMEASAN_H
11
12
#include "
lldb/Target/InstrumentationRuntime.h
"
13
#include "
lldb/Target/Process.h
"
14
#include "
lldb/Utility/StructuredData.h
"
15
#include "
lldb/lldb-private.h
"
16
17
namespace
lldb_private
{
18
19
class
InstrumentationRuntimeASan
:
public
lldb_private::InstrumentationRuntime
{
20
public
:
21
~InstrumentationRuntimeASan
()
override
;
22
23
static
lldb::InstrumentationRuntimeSP
24
CreateInstance
(
const
lldb::ProcessSP
&process_sp);
25
26
static
void
Initialize
();
27
28
static
void
Terminate
();
29
30
static
llvm::StringRef
GetPluginNameStatic
() {
return
"AddressSanitizer"
; }
31
32
static
lldb::InstrumentationRuntimeType
GetTypeStatic
();
33
34
llvm::StringRef
GetPluginName
()
override
{
return
GetPluginNameStatic
(); }
35
36
virtual
lldb::InstrumentationRuntimeType
GetType
() {
return
GetTypeStatic
(); }
37
38
private
:
39
InstrumentationRuntimeASan
(
const
lldb::ProcessSP
&process_sp)
40
:
lldb_private
::
InstrumentationRuntime
(process_sp) {}
41
42
const
RegularExpression
&
GetPatternForRuntimeLibrary
()
override
;
43
44
bool
CheckIfRuntimeIsValid
(
const
lldb::ModuleSP
module_sp)
override
;
45
46
void
Activate
()
override
;
47
48
void
Deactivate
();
49
50
static
bool
NotifyBreakpointHit
(
void
*baton,
51
StoppointCallbackContext
*context,
52
lldb::user_id_t
break_id,
53
lldb::user_id_t
break_loc_id);
54
55
StructuredData::ObjectSP
RetrieveReportData
();
56
57
std::string
FormatDescription
(
StructuredData::ObjectSP
report);
58
};
59
60
}
// namespace lldb_private
61
62
#endif
// LLDB_SOURCE_PLUGINS_INSTRUMENTATIONRUNTIME_ASAN_INSTRUMENTATIONRUNTIMEASAN_H
InstrumentationRuntime.h
Process.h
StructuredData.h
lldb_private::InstrumentationRuntimeASan
Definition:
InstrumentationRuntimeASan.h:19
lldb_private::InstrumentationRuntimeASan::GetTypeStatic
static lldb::InstrumentationRuntimeType GetTypeStatic()
Definition:
InstrumentationRuntimeASan.cpp:50
lldb_private::InstrumentationRuntimeASan::NotifyBreakpointHit
static bool NotifyBreakpointHit(void *baton, StoppointCallbackContext *context, lldb::user_id_t break_id, lldb::user_id_t break_loc_id)
Definition:
InstrumentationRuntimeASan.cpp:235
lldb_private::InstrumentationRuntimeASan::~InstrumentationRuntimeASan
~InstrumentationRuntimeASan() override
Definition:
InstrumentationRuntimeASan.cpp:54
lldb_private::InstrumentationRuntimeASan::GetType
virtual lldb::InstrumentationRuntimeType GetType()
Definition:
InstrumentationRuntimeASan.h:36
lldb_private::InstrumentationRuntimeASan::InstrumentationRuntimeASan
InstrumentationRuntimeASan(const lldb::ProcessSP &process_sp)
Definition:
InstrumentationRuntimeASan.h:39
lldb_private::InstrumentationRuntimeASan::Activate
void Activate() override
Register a breakpoint in the runtime library and perform any other necessary initialization.
Definition:
InstrumentationRuntimeASan.cpp:275
lldb_private::InstrumentationRuntimeASan::CreateInstance
static lldb::InstrumentationRuntimeSP CreateInstance(const lldb::ProcessSP &process_sp)
Definition:
InstrumentationRuntimeASan.cpp:36
lldb_private::InstrumentationRuntimeASan::FormatDescription
std::string FormatDescription(StructuredData::ObjectSP report)
Definition:
InstrumentationRuntimeASan.cpp:189
lldb_private::InstrumentationRuntimeASan::RetrieveReportData
StructuredData::ObjectSP RetrieveReportData()
Definition:
InstrumentationRuntimeASan.cpp:109
lldb_private::InstrumentationRuntimeASan::GetPluginName
llvm::StringRef GetPluginName() override
Definition:
InstrumentationRuntimeASan.h:34
lldb_private::InstrumentationRuntimeASan::GetPluginNameStatic
static llvm::StringRef GetPluginNameStatic()
Definition:
InstrumentationRuntimeASan.h:30
lldb_private::InstrumentationRuntimeASan::GetPatternForRuntimeLibrary
const RegularExpression & GetPatternForRuntimeLibrary() override
Return a regular expression which can be used to identify a valid version of the runtime library.
Definition:
InstrumentationRuntimeASan.cpp:57
lldb_private::InstrumentationRuntimeASan::Deactivate
void Deactivate()
Definition:
InstrumentationRuntimeASan.cpp:314
lldb_private::InstrumentationRuntimeASan::CheckIfRuntimeIsValid
bool CheckIfRuntimeIsValid(const lldb::ModuleSP module_sp) override
Check whether module_sp corresponds to a valid runtime library.
Definition:
InstrumentationRuntimeASan.cpp:64
lldb_private::InstrumentationRuntimeASan::Initialize
static void Initialize()
Definition:
InstrumentationRuntimeASan.cpp:40
lldb_private::InstrumentationRuntimeASan::Terminate
static void Terminate()
Definition:
InstrumentationRuntimeASan.cpp:46
lldb_private::InstrumentationRuntime
Definition:
InstrumentationRuntime.h:29
lldb_private::RegularExpression
Definition:
RegularExpression.h:18
lldb_private::StoppointCallbackContext
General Outline: When we hit a breakpoint we need to package up whatever information is needed to eva...
Definition:
StoppointCallbackContext.h:26
lldb_private::StructuredData::ObjectSP
std::shared_ptr< Object > ObjectSP
Definition:
StructuredData.h:65
lldb-private.h
lldb_private
A class that represents a running process on the host machine.
Definition:
SBAttachInfo.h:14
lldb::ProcessSP
std::shared_ptr< lldb_private::Process > ProcessSP
Definition:
lldb-forward.h:368
lldb::InstrumentationRuntimeType
InstrumentationRuntimeType
Definition:
lldb-enumerations.h:524
lldb::user_id_t
uint64_t user_id_t
Definition:
lldb-types.h:80
lldb::InstrumentationRuntimeSP
std::shared_ptr< lldb_private::InstrumentationRuntime > InstrumentationRuntimeSP
Definition:
lldb-forward.h:341
lldb::ModuleSP
std::shared_ptr< lldb_private::Module > ModuleSP
Definition:
lldb-forward.h:354
Generated on Tue Sep 26 2023 00:35:52 for LLDB by
1.9.6