|
LLDB mainline
|
#include <ScriptedFrame.h>
Public Member Functions | |
| ScriptedFrame (ScriptedThread &thread, lldb::ScriptedFrameInterfaceSP interface_sp, lldb::user_id_t frame_idx, lldb::addr_t pc, SymbolContext &sym_ctx, lldb::RegisterContextSP reg_ctx_sp, std::shared_ptr< DynamicRegisterInfo > reg_info_sp, StructuredData::GenericSP script_object_sp=nullptr) | |
| ~ScriptedFrame () override | |
| bool | IsInlined () override |
| Query whether this frame is a concrete frame on the call stack, or if it is an inlined frame derived from the debug information and presented by the debugger. | |
| bool | IsArtificial () const override |
| Query whether this frame is artificial (e.g a synthesized result of inferring missing tail call frames from a backtrace). | |
| bool | IsHidden () override |
| Query whether this frame should be hidden from backtraces. | |
| const char * | GetFunctionName () override |
| Get the frame's demangled name. | |
| const char * | GetDisplayFunctionName () override |
| Get the frame's demangled display name. | |
| Public Member Functions inherited from lldb_private::StackFrame | |
| StackFrame (const lldb::ThreadSP &thread_sp, lldb::user_id_t frame_idx, lldb::user_id_t concrete_frame_idx, lldb::addr_t cfa, bool cfa_is_valid, lldb::addr_t pc, Kind frame_kind, bool artificial, bool behaves_like_zeroth_frame, const SymbolContext *sc_ptr) | |
| Construct a StackFrame object without supplying a RegisterContextSP. | |
| StackFrame (const lldb::ThreadSP &thread_sp, lldb::user_id_t frame_idx, lldb::user_id_t concrete_frame_idx, const lldb::RegisterContextSP ®_context_sp, lldb::addr_t cfa, lldb::addr_t pc, bool behaves_like_zeroth_frame, const SymbolContext *sc_ptr) | |
| StackFrame (const lldb::ThreadSP &thread_sp, lldb::user_id_t frame_idx, lldb::user_id_t concrete_frame_idx, const lldb::RegisterContextSP ®_context_sp, lldb::addr_t cfa, const Address &pc, bool behaves_like_zeroth_frame, const SymbolContext *sc_ptr) | |
| ~StackFrame () override | |
| lldb::ThreadSP | GetThread () const |
| StackID & | GetStackID () |
| const Address & | GetFrameCodeAddress () |
| Get an Address for the current pc value in this StackFrame. | |
| Address | GetFrameCodeAddressForSymbolication () |
| Get the current code Address suitable for symbolication, may not be the same as GetFrameCodeAddress(). | |
| bool | ChangePC (lldb::addr_t pc) |
| Change the pc value for a given thread. | |
| const SymbolContext & | GetSymbolContext (lldb::SymbolContextItem resolve_scope) |
| Provide a SymbolContext for this StackFrame's current pc value. | |
| llvm::Error | GetFrameBaseValue (Scalar &value) |
| Return the Canonical Frame Address (DWARF term) for this frame. | |
| DWARFExpressionList * | GetFrameBaseExpression (Status *error_ptr) |
| Get the DWARFExpressionList corresponding to the Canonical Frame Address. | |
| Block * | GetFrameBlock () |
| Get the current lexical scope block for this StackFrame, if possible. | |
| lldb::RegisterContextSP | GetRegisterContext () |
| Get the RegisterContext for this frame, if possible. | |
| const lldb::RegisterContextSP & | GetRegisterContextSP () const |
| VariableList * | GetVariableList (bool get_file_globals, Status *error_ptr) |
| Retrieve the list of variables whose scope either: | |
| lldb::VariableListSP | GetInScopeVariableList (bool get_file_globals, bool must_have_valid_location=false) |
| Retrieve the list of variables that are in scope at this StackFrame's pc. | |
| lldb::ValueObjectSP | GetValueForVariableExpressionPath (llvm::StringRef var_expr, lldb::DynamicValueType use_dynamic, uint32_t options, lldb::VariableSP &var_sp, Status &error) |
| Create a ValueObject for a variable name / pathname, possibly including simple dereference/child selection syntax. | |
| bool | HasDebugInformation () |
| Determine whether this StackFrame has debug information available or not. | |
| const char * | Disassemble () |
| Return the disassembly for the instructions of this StackFrame's function as a single C string. | |
| bool | DumpUsingFormat (Stream &strm, const lldb_private::FormatEntity::Entry *format, llvm::StringRef frame_marker={}) |
| Print a description of this frame using the provided frame format. | |
| void | DumpUsingSettingsFormat (Stream *strm, bool show_unique=false, const char *frame_marker=nullptr) |
| Print a description for this frame using the frame-format formatter settings. | |
| void | Dump (Stream *strm, bool show_frame_index, bool show_fullpaths) |
| Print a description for this frame using a default format. | |
| bool | GetStatus (Stream &strm, bool show_frame_info, bool show_source, bool show_unique=false, const char *frame_marker=nullptr) |
| Print a description of this stack frame and/or the source context/assembly for this stack frame. | |
| bool | IsSynthetic () const |
| Query whether this frame is synthetic. | |
| bool | IsHistorical () const |
| Query whether this frame is part of a historical backtrace. | |
| StructuredData::ObjectSP | GetLanguageSpecificData () |
| Language plugins can use this API to report language-specific runtime information about this compile unit, such as additional language version details or feature flags. | |
| uint32_t | GetFrameIndex () const |
| Query this frame to find what frame it is in this Thread's StackFrameList. | |
| void | SetFrameIndex (uint32_t index) |
| Set this frame's synthetic frame index. | |
| uint32_t | GetConcreteFrameIndex () const |
| Query this frame to find what frame it is in this Thread's StackFrameList, not counting inlined frames. | |
| lldb::ValueObjectSP | GetValueObjectForFrameVariable (const lldb::VariableSP &variable_sp, lldb::DynamicValueType use_dynamic) |
| Create a ValueObject for a given Variable in this StackFrame. | |
| SourceLanguage | GetLanguage () |
| Query this frame to determine what the default language should be when parsing expressions given the execution context. | |
| SourceLanguage | GuessLanguage () |
| Similar to GetLanguage(), but is allowed to take a potentially incorrect guess if exact information is not available. | |
| lldb::ValueObjectSP | GuessValueForAddress (lldb::addr_t addr) |
| Attempt to econstruct the ValueObject for a given raw address touched by the current instruction. | |
| lldb::ValueObjectSP | GuessValueForRegisterAndOffset (ConstString reg, int64_t offset) |
| Attempt to reconstruct the ValueObject for the address contained in a given register plus an offset. | |
| lldb::ValueObjectSP | FindVariable (ConstString name) |
| Attempt to reconstruct the ValueObject for a variable with a given name from within the current StackFrame, within the current block. | |
| lldb::TargetSP | CalculateTarget () override |
| lldb::ProcessSP | CalculateProcess () override |
| lldb::ThreadSP | CalculateThread () override |
| lldb::StackFrameSP | CalculateStackFrame () override |
| void | CalculateExecutionContext (ExecutionContext &exe_ctx) override |
| Reconstruct the object's execution context into sc. | |
| lldb::RecognizedStackFrameSP | GetRecognizedFrame () |
| Public Member Functions inherited from lldb_private::ExecutionContextScope | |
| virtual | ~ExecutionContextScope ()=default |
Static Public Member Functions | |
| static llvm::Expected< std::shared_ptr< ScriptedFrame > > | Create (ScriptedThread &thread, StructuredData::DictionarySP args_sp, StructuredData::Generic *script_object=nullptr) |
Private Member Functions | |
| void | CheckInterpreterAndScriptObject () const |
| lldb::ScriptedFrameInterfaceSP | GetInterface () const |
| ScriptedFrame (const ScriptedFrame &)=delete | |
| const ScriptedFrame & | operator= (const ScriptedFrame &)=delete |
| std::shared_ptr< DynamicRegisterInfo > | GetDynamicRegisterInfo () |
Private Attributes | |
| lldb::ScriptedFrameInterfaceSP | m_scripted_frame_interface_sp |
| lldb_private::StructuredData::GenericSP | m_script_object_sp |
| std::shared_ptr< DynamicRegisterInfo > | m_register_info_sp |
Definition at line 24 of file ScriptedFrame.h.
| ScriptedFrame::ScriptedFrame | ( | ScriptedThread & | thread, |
| lldb::ScriptedFrameInterfaceSP | interface_sp, | ||
| lldb::user_id_t | frame_idx, | ||
| lldb::addr_t | pc, | ||
| SymbolContext & | sym_ctx, | ||
| lldb::RegisterContextSP | reg_ctx_sp, | ||
| std::shared_ptr< DynamicRegisterInfo > | reg_info_sp, | ||
| StructuredData::GenericSP | script_object_sp = nullptr ) |
Definition at line 112 of file ScriptedFrame.cpp.
References m_register_info_sp, m_script_object_sp, m_scripted_frame_interface_sp, pc, and lldb_private::StackFrame::StackFrame().
Referenced by operator=(), and ScriptedFrame().
|
override |
Definition at line 126 of file ScriptedFrame.cpp.
|
privatedelete |
References ScriptedFrame().
|
private |
Definition at line 16 of file ScriptedFrame.cpp.
References GetInterface(), lldbassert, and m_script_object_sp.
Referenced by GetDisplayFunctionName(), GetDynamicRegisterInfo(), and GetFunctionName().
|
static |
Definition at line 22 of file ScriptedFrame.cpp.
References lldb_private::Address::CalculateSymbolContext(), lldb_private::DynamicRegisterInfo::Create(), LLDB_INVALID_ADDRESS, pc, and lldb_private::Address::SetLoadAddress().
Referenced by lldb_private::ScriptedThread::LoadArtificialStackFrames().
|
overridevirtual |
Get the frame's demangled display name.
///
Reimplemented from lldb_private::StackFrame.
Definition at line 136 of file ScriptedFrame.cpp.
References lldb_private::ConstString::AsCString(), CheckInterpreterAndScriptObject(), and GetInterface().
|
private |
Definition at line 157 of file ScriptedFrame.cpp.
References CheckInterpreterAndScriptObject(), lldb_private::DynamicRegisterInfo::Create(), error(), lldb_private::ScriptedInterface::ErrorWithMessage(), GetInterface(), m_register_info_sp, lldb_private::StackFrame::m_thread_wp, and lldb_private::Thread.
|
overridevirtual |
Get the frame's demangled name.
///
Reimplemented from lldb_private::StackFrame.
Definition at line 128 of file ScriptedFrame.cpp.
References lldb_private::ConstString::AsCString(), CheckInterpreterAndScriptObject(), and GetInterface().
|
private |
Definition at line 153 of file ScriptedFrame.cpp.
References m_scripted_frame_interface_sp.
Referenced by CheckInterpreterAndScriptObject(), GetDisplayFunctionName(), GetDynamicRegisterInfo(), GetFunctionName(), IsArtificial(), IsHidden(), and IsInlined().
|
overridevirtual |
Query whether this frame is artificial (e.g a synthesized result of inferring missing tail call frames from a backtrace).
Artificial frames may have limited support for inspecting variables.
Reimplemented from lldb_private::StackFrame.
Definition at line 147 of file ScriptedFrame.cpp.
References GetInterface().
|
overridevirtual |
Query whether this frame should be hidden from backtraces.
Frame recognizers can customize this behavior and hide distracting system implementation details this way.
Reimplemented from lldb_private::StackFrame.
Definition at line 151 of file ScriptedFrame.cpp.
References GetInterface().
|
overridevirtual |
Query whether this frame is a concrete frame on the call stack, or if it is an inlined frame derived from the debug information and presented by the debugger.
Reimplemented from lldb_private::StackFrame.
Definition at line 145 of file ScriptedFrame.cpp.
References GetInterface().
|
privatedelete |
References ScriptedFrame().
|
private |
Definition at line 57 of file ScriptedFrame.h.
Referenced by GetDynamicRegisterInfo(), and ScriptedFrame().
|
private |
Definition at line 56 of file ScriptedFrame.h.
Referenced by CheckInterpreterAndScriptObject(), and ScriptedFrame().
|
private |
Definition at line 55 of file ScriptedFrame.h.
Referenced by GetInterface(), and ScriptedFrame().