LLDB
mainline
llvm-project
lldb
source
Breakpoint
ScriptedBreakpointOverrideResolver.cpp
Go to the documentation of this file.
1
//===----------------------------------------------------------------------===//
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
#include "
lldb/Breakpoint/ScriptedBreakpointOverrideResolver.h
"
10
#include "
lldb/Breakpoint/Breakpoint.h
"
11
#include "
lldb/Breakpoint/BreakpointResolverScripted.h
"
12
#include "
lldb/Core/Debugger.h
"
13
#include "
lldb/Interpreter/ScriptInterpreter.h
"
14
#include "llvm/Support/ErrorExtras.h"
15
16
namespace
lldb_private
{
17
lldb::BreakpointResolverSP
ScriptedBreakpointResolverOverride::CheckForOverride
(
18
Target
&target,
lldb::BreakpointResolverSP
initial_sp) {
19
lldb::BreakpointResolverSP
candidate_sp(
new
BreakpointResolverScripted
(
20
{},
m_class_name
, initial_sp->GetDepth(),
m_args_data
));
21
if
(candidate_sp->OverridesResolver(target, initial_sp))
22
return
candidate_sp;
23
return
{};
24
}
25
26
llvm::Error
ScriptedBreakpointResolverOverride::HasErrors
() {
27
ScriptInterpreter
*interpreter =
28
m_target
.GetDebugger().GetScriptInterpreter();
29
if
(!interpreter || !interpreter->
CheckObjectExists
(
m_class_name
.c_str()))
30
return
llvm::createStringErrorV(
31
"class for breakpoint override: \"{0}\" does not exist"
,
m_class_name
);
32
return
llvm::Error::success();
33
}
34
}
// namespace lldb_private
BreakpointResolverScripted.h
Breakpoint.h
Debugger.h
ScriptInterpreter.h
ScriptedBreakpointOverrideResolver.h
lldb_private::BreakpointResolverScripted
"lldb/Breakpoint/BreakpointResolverScripted.h" This class sets breakpoints on a given Address.
Definition
BreakpointResolverScripted.h:25
lldb_private::ScriptInterpreter
Definition
ScriptInterpreter.h:138
lldb_private::ScriptInterpreter::CheckObjectExists
virtual bool CheckObjectExists(const char *name)
Definition
ScriptInterpreter.h:377
lldb_private::ScriptedBreakpointResolverOverride::m_class_name
std::string m_class_name
Definition
ScriptedBreakpointOverrideResolver.h:44
lldb_private::ScriptedBreakpointResolverOverride::m_args_data
StructuredDataImpl m_args_data
Definition
ScriptedBreakpointOverrideResolver.h:43
lldb_private::ScriptedBreakpointResolverOverride::HasErrors
llvm::Error HasErrors() override
Definition
ScriptedBreakpointOverrideResolver.cpp:26
lldb_private::ScriptedBreakpointResolverOverride::CheckForOverride
lldb::BreakpointResolverSP CheckForOverride(Target &target, lldb::BreakpointResolverSP initial_sp) override
Definition
ScriptedBreakpointOverrideResolver.cpp:17
lldb_private::Target::BreakpointResolverOverride::m_target
Target & m_target
Definition
Target.h:1074
lldb_private::Target
Definition
Target.h:602
lldb_private
A class that represents a running process on the host machine.
Definition
SBAddressRange.h:14
lldb::BreakpointResolverSP
std::shared_ptr< lldb_private::BreakpointResolver > BreakpointResolverSP
Definition
lldb-forward.h:345
Generated on
for LLDB by
1.14.0