|
LLDB mainline
|
"lldb/Breakpoint/BreakpointResolverScripted.h" This class sets breakpoints on a given Address. More...
#include <BreakpointResolverScripted.h>
Public Member Functions | |
| BreakpointResolverScripted (const lldb::BreakpointSP &bkpt, const llvm::StringRef class_name, lldb::SearchDepth depth, const StructuredDataImpl &args_data) | |
| ~BreakpointResolverScripted () override=default | |
| StructuredData::ObjectSP | SerializeToStructuredData () override |
| Searcher::CallbackReturn | SearchCallback (SearchFilter &filter, SymbolContext &context, Address *addr) override |
| lldb::SearchDepth | GetDepth () override |
| void | GetDescription (Stream *s) override |
| Prints a canonical description for the breakpoint to the stream s. | |
| lldb::BreakpointLocationSP | WasHit (lldb::StackFrameSP frame_sp, lldb::BreakpointLocationSP bp_loc_sp) |
| std::optional< std::string > | GetLocationDescription (lldb::BreakpointLocationSP bp_loc_sp, lldb::DescriptionLevel level) |
| void | Dump (Stream *s) const override |
| Standard "Dump" method. At present it does nothing. | |
| lldb::BreakpointResolverSP | CopyForBreakpoint (lldb::BreakpointSP &breakpoint) override |
| bool | OverridesResolver (Target &target, lldb::BreakpointResolverSP original_sp) override |
| The resolver_sp won't have had its breakpoint set by the time we are checking the Override, but it might need to access the Target, so we pass that in here. | |
| Public Member Functions inherited from lldb_private::BreakpointResolver | |
| BreakpointResolver (const lldb::BreakpointSP &bkpt, unsigned char resolverType, lldb::addr_t offset=0, bool offset_is_insn_count=false) | |
| The breakpoint resolver need to have a breakpoint for "ResolveBreakpoint to make sense. | |
| ~BreakpointResolver () override | |
| The Destructor is virtual, all significant breakpoint resolvers derive from this class. | |
| void | SetBreakpoint (const lldb::BreakpointSP &bkpt) |
| This sets the breakpoint for this resolver. | |
| lldb::BreakpointSP | GetBreakpoint () const |
| This gets the breakpoint for this resolver. | |
| void | SetOffset (lldb::addr_t offset) |
| This updates the offset for this breakpoint. | |
| lldb::addr_t | GetOffset () const |
| bool | GetOffsetIsInsnCount () const |
| virtual void | ResolveBreakpoint (SearchFilter &filter) |
| In response to this method the resolver scans all the modules in the breakpoint's target, and adds any new locations it finds. | |
| virtual void | ResolveBreakpointInModules (SearchFilter &filter, ModuleList &modules) |
| In response to this method the resolver scans the modules in the module list modules, and adds any new locations it finds. | |
| StructuredData::DictionarySP | WrapOptionsDict (StructuredData::DictionarySP options_dict_sp) |
| unsigned | getResolverID () const |
| getResolverID - Return an ID for the concrete type of this object. | |
| enum ResolverTy | GetResolverTy () |
| const char * | GetResolverName () |
| Public Member Functions inherited from lldb_private::Searcher | |
| Searcher () | |
| virtual | ~Searcher () |
Static Public Member Functions | |
| static lldb::BreakpointResolverSP | CreateFromStructuredData (const StructuredData::Dictionary &options_dict, Status &error) |
| static bool | classof (const BreakpointResolverScripted *) |
| Methods for support type inquiry through isa, cast, and dyn_cast: | |
| static bool | classof (const BreakpointResolver *V) |
| Static Public Member Functions inherited from lldb_private::BreakpointResolver | |
| static lldb::BreakpointResolverSP | CreateFromStructuredData (const StructuredData::Dictionary &resolver_dict, Status &error) |
| This section handles serializing and deserializing from StructuredData objects. | |
| static const char * | GetSerializationKey () |
| static const char * | GetSerializationSubclassKey () |
| static const char * | GetSerializationSubclassOptionsKey () |
| static const char * | ResolverTyToName (enum ResolverTy) |
| static ResolverTy | NameToResolverTy (llvm::StringRef name) |
| static const char * | GetKey (OptionNames enum_value) |
Protected Member Functions | |
| void | NotifyBreakpointSet () override |
| Protected Member Functions inherited from lldb_private::BreakpointResolver | |
| void | SetSCMatchesByLine (SearchFilter &filter, SymbolContextList &sc_list, bool skip_prologue, llvm::StringRef log_ident, uint32_t line=0, std::optional< uint16_t > column=std::nullopt) |
| Takes a symbol context list of matches which supposedly represent the same file and line number in a CU, and find the nearest actual line number that matches, and then filter down the matching addresses to unique entries, and skip the prologue if asked to do so, and then set breakpoint locations in this breakpoint for all the resultant addresses. | |
| void | SetSCMatchesByLine (SearchFilter &, SymbolContextList &, bool, const char *)=delete |
| lldb::BreakpointLocationSP | AddLocation (Address loc_addr, bool *new_location=nullptr) |
Private Member Functions | |
| void | CreateImplementationIfNeeded (lldb::BreakpointSP bkpt) |
| void | CreateImplementationIfNeeded (Target &target, lldb::BreakpointSP bkpt) |
| ScriptInterpreter * | GetScriptInterpreter () |
| BreakpointResolverScripted (const BreakpointResolverScripted &)=delete | |
| const BreakpointResolverScripted & | operator= (const BreakpointResolverScripted &)=delete |
Private Attributes | |
| std::string | m_class_name |
| lldb::SearchDepth | m_depth |
| StructuredDataImpl | m_args |
| Status | m_error |
| lldb::ScriptedBreakpointInterfaceSP | m_interface_sp |
| bool | m_breakpoint_sent = false |
"lldb/Breakpoint/BreakpointResolverScripted.h" This class sets breakpoints on a given Address.
This breakpoint only takes once, and then it won't attempt to reset itself.
Definition at line 25 of file BreakpointResolverScripted.h.
| BreakpointResolverScripted::BreakpointResolverScripted | ( | const lldb::BreakpointSP & | bkpt, |
| const llvm::StringRef | class_name, | ||
| lldb::SearchDepth | depth, | ||
| const StructuredDataImpl & | args_data ) |
Definition at line 28 of file BreakpointResolverScripted.cpp.
References lldb_private::BreakpointResolver::BreakpointResolver(), CreateImplementationIfNeeded(), m_args, m_class_name, m_depth, and lldb_private::BreakpointResolver::PythonResolver.
Referenced by BreakpointResolverScripted(), classof(), and operator=().
|
overridedefault |
References error().
|
privatedelete |
References BreakpointResolverScripted().
|
inlinestatic |
Definition at line 59 of file BreakpointResolverScripted.h.
References lldb_private::BreakpointResolver::BreakpointResolver(), lldb_private::BreakpointResolver::getResolverID(), and lldb_private::BreakpointResolver::PythonResolver.
|
inlinestatic |
Methods for support type inquiry through isa, cast, and dyn_cast:
Definition at line 58 of file BreakpointResolverScripted.h.
References BreakpointResolverScripted().
|
overridevirtual |
Implements lldb_private::BreakpointResolver.
Definition at line 221 of file BreakpointResolverScripted.cpp.
References m_args, m_class_name, and m_depth.
|
static |
Definition at line 122 of file BreakpointResolverScripted.cpp.
References error(), lldb::eSearchDepthTarget, lldb_private::Status::FromErrorString(), lldb_private::BreakpointResolver::GetKey(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsDictionary(), lldb_private::StructuredData::Dictionary::GetValueForKeyAsString(), lldb_private::BreakpointResolver::PythonClassName, lldb_private::BreakpointResolver::ScriptArgs, and lldb_private::StructuredDataImpl::SetObjectSP().
Referenced by lldb_private::BreakpointResolver::CreateFromStructuredData().
|
private |
Definition at line 37 of file BreakpointResolverScripted.cpp.
References CreateImplementationIfNeeded(), m_breakpoint_sent, m_class_name, and m_interface_sp.
Referenced by BreakpointResolverScripted(), CreateImplementationIfNeeded(), GetDescription(), GetLocationDescription(), NotifyBreakpointSet(), and OverridesResolver().
|
private |
Definition at line 62 of file BreakpointResolverScripted.cpp.
References lldb_private::ScriptInterpreter::CreateScriptedBreakpointInterface(), lldb_private::Status::FromError(), lldb_private::Status::FromErrorStringWithFormat(), lldb_private::Target::GetDebugger(), lldb_private::Debugger::GetScriptInterpreter(), m_args, m_breakpoint_sent, m_class_name, m_error, and m_interface_sp.
|
overridevirtual |
Standard "Dump" method. At present it does nothing.
Implements lldb_private::BreakpointResolver.
Definition at line 218 of file BreakpointResolverScripted.cpp.
|
overridevirtual |
Implements lldb_private::Searcher.
Definition at line 179 of file BreakpointResolverScripted.cpp.
References lldb::eSearchDepthModule, and m_interface_sp.
|
overridevirtual |
Prints a canonical description for the breakpoint to the stream s.
| [in] | s | Stream to which the output is copied. |
Implements lldb_private::BreakpointResolver.
Definition at line 187 of file BreakpointResolverScripted.cpp.
References CreateImplementationIfNeeded(), lldb_private::BreakpointResolver::GetBreakpoint(), m_class_name, m_interface_sp, lldb_private::Stream::Printf(), and lldb_private::Stream::PutCString().
| std::optional< std::string > BreakpointResolverScripted::GetLocationDescription | ( | lldb::BreakpointLocationSP | bp_loc_sp, |
| lldb::DescriptionLevel | level ) |
Definition at line 202 of file BreakpointResolverScripted.cpp.
References CreateImplementationIfNeeded(), lldb_private::BreakpointResolver::GetBreakpoint(), and m_interface_sp.
Referenced by lldb_private::BreakpointLocation::GetDescription().
|
private |
Definition at line 161 of file BreakpointResolverScripted.cpp.
References lldb_private::BreakpointResolver::GetBreakpoint().
|
overrideprotectedvirtual |
Reimplemented from lldb_private::BreakpointResolver.
Definition at line 118 of file BreakpointResolverScripted.cpp.
References CreateImplementationIfNeeded(), and lldb_private::BreakpointResolver::GetBreakpoint().
|
privatedelete |
References BreakpointResolverScripted().
|
overridevirtual |
The resolver_sp won't have had its breakpoint set by the time we are checking the Override, but it might need to access the Target, so we pass that in here.
Reimplemented from lldb_private::BreakpointResolver.
Definition at line 104 of file BreakpointResolverScripted.cpp.
References CreateImplementationIfNeeded(), and m_interface_sp.
|
overridevirtual |
Implements lldb_private::Searcher.
Definition at line 165 of file BreakpointResolverScripted.cpp.
References lldb_private::Searcher::eCallbackReturnContinue, lldb_private::Searcher::eCallbackReturnStop, and m_interface_sp.
|
overridevirtual |
Reimplemented from lldb_private::BreakpointResolver.
Definition at line 148 of file BreakpointResolverScripted.cpp.
References lldb_private::BreakpointResolver::GetKey(), m_args, m_class_name, lldb_private::BreakpointResolver::PythonClassName, lldb_private::BreakpointResolver::ScriptArgs, and lldb_private::BreakpointResolver::WrapOptionsDict().
| lldb::BreakpointLocationSP BreakpointResolverScripted::WasHit | ( | lldb::StackFrameSP | frame_sp, |
| lldb::BreakpointLocationSP | bp_loc_sp ) |
Definition at line 211 of file BreakpointResolverScripted.cpp.
References m_interface_sp.
Referenced by lldb_private::BreakpointLocation::WasHit().
|
private |
Definition at line 82 of file BreakpointResolverScripted.h.
Referenced by BreakpointResolverScripted(), CopyForBreakpoint(), CreateImplementationIfNeeded(), and SerializeToStructuredData().
|
private |
Definition at line 85 of file BreakpointResolverScripted.h.
Referenced by CreateImplementationIfNeeded(), and CreateImplementationIfNeeded().
|
private |
Definition at line 80 of file BreakpointResolverScripted.h.
Referenced by BreakpointResolverScripted(), CopyForBreakpoint(), CreateImplementationIfNeeded(), CreateImplementationIfNeeded(), GetDescription(), and SerializeToStructuredData().
|
private |
Definition at line 81 of file BreakpointResolverScripted.h.
Referenced by BreakpointResolverScripted(), and CopyForBreakpoint().
|
private |
Definition at line 83 of file BreakpointResolverScripted.h.
Referenced by CreateImplementationIfNeeded().
|
private |
Definition at line 84 of file BreakpointResolverScripted.h.
Referenced by CreateImplementationIfNeeded(), CreateImplementationIfNeeded(), GetDepth(), GetDescription(), GetLocationDescription(), OverridesResolver(), SearchCallback(), and WasHit().