32llvm::Expected<StructuredData::GenericSP>
36 scripted_metadata,
nullptr, break_sp, scripted_metadata.
GetArgsSP());
43 TargetSP target_sp = target.shared_from_this();
46 Dispatch(
"overrides_resolver",
error, target_sp, resolver_data);
51 LLDB_LOG(log,
"Error calling overrides_resolver method: {0}",
error);
54 return obj->GetBooleanValue();
64 LLDB_LOG(log,
"Error calling set_breakpoint method: {0}",
error);
77 LLDB_LOG(log,
"Error calling __callback__ method: {}",
error);
80 return obj->GetBooleanValue();
91 uint64_t value = obj->GetUnsignedIntegerValue();
108 return obj->GetAsString()->GetValue().str();
115 "was_hit", py_error, frame_sp, bp_loc_sp);
123std::optional<std::string>
128 Dispatch(
"get_location_description",
error, bp_loc_sp, level);
134 return obj->GetAsString()->GetValue().str();
138 const std::vector<llvm::StringRef> ci_usages = {
139 "breakpoint set -P classname [-k key -v value ...]"};
140 const std::vector<llvm::StringRef> api_usages = {
141 "SBTarget.BreakpointCreateFromScript"};
144 llvm::StringRef(
"Create a breakpoint that chooses locations based on "
145 "user-created callbacks"),
static llvm::raw_ostream & error(Stream &strm)
#define LLDB_LOG(log,...)
The LLDB_LOG* macros defined below are the way to emit log messages.
static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, ABICreateInstance create_callback)
static bool UnregisterPlugin(ABICreateInstance create_callback)
llvm::Expected< StructuredData::GenericSP > CreatePluginObject(const ScriptedMetadata &scripted_metadata, lldb::BreakpointSP break_sp) override
bool OverridesResolver(Target &target, StructuredDataImpl &resolver_data) override
std::optional< std::string > GetShortHelp() override
ScriptedBreakpointPythonInterface(ScriptInterpreterPythonImpl &interpreter)
bool ResolverCallback(SymbolContext sym_ctx) override
"ResolverCallback" will get called when a new module is loaded.
lldb::BreakpointLocationSP WasHit(lldb::StackFrameSP frame_sp, lldb::BreakpointLocationSP bp_loc_sp) override
WasHit returns the breakpoint location SP for the location that was "hit".
lldb::SearchDepth GetDepth() override
static llvm::StringRef GetPluginNameStatic()
virtual std::optional< std::string > GetLocationDescription(lldb::BreakpointLocationSP bp_loc_sp, lldb::DescriptionLevel level) override
void SetBreakpoint(lldb::BreakpointSP break_sp) override
static bool CheckStructuredDataObject(llvm::StringRef caller, T obj, Status &error)
static bool CreateInstance(lldb::ScriptLanguage language, ScriptedInterfaceUsages usages)
ScriptedPythonInterface(ScriptInterpreterPythonImpl &interpreter)
T Dispatch(llvm::StringRef method_name, Status &error, Args &&...args)
llvm::Expected< StructuredData::GenericSP > CreatePluginObject(const ScriptedMetadata &scripted_metadata, StructuredData::Generic *script_obj, Args... args)
bool Fail() const
Test for error condition.
std::shared_ptr< Object > ObjectSP
Defines a symbol context baton that can be handed other debug core functions.
A class that represents a running process on the host machine.
Log * GetLog(Cat mask)
Retrieve the Log object for the channel associated with the given log enum.
std::shared_ptr< lldb_private::StackFrame > StackFrameSP
std::shared_ptr< lldb_private::BreakpointLocation > BreakpointLocationSP
DescriptionLevel
Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls.
std::shared_ptr< lldb_private::Breakpoint > BreakpointSP
std::shared_ptr< lldb_private::Target > TargetSP