LLDB  mainline
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
lldb_private::ScriptInterpreterLua Class Reference

#include <ScriptInterpreterLua.h>

Inheritance diagram for lldb_private::ScriptInterpreterLua:
Inheritance graph
[legend]
Collaboration diagram for lldb_private::ScriptInterpreterLua:
Collaboration graph
[legend]

Classes

class  CommandDataLua
 

Public Member Functions

 ScriptInterpreterLua (Debugger &debugger)
 
 ~ScriptInterpreterLua () override
 
bool ExecuteOneLine (llvm::StringRef command, CommandReturnObject *result, const ExecuteScriptOptions &options=ExecuteScriptOptions()) override
 
void ExecuteInterpreterLoop () override
 
bool LoadScriptingModule (const char *filename, const LoadScriptOptions &options, lldb_private::Status &error, StructuredData::ObjectSP *module_sp=nullptr, FileSpec extra_search_dir={}) override
 
lldb_private::ConstString GetPluginName () override
 
LuaGetLua ()
 
llvm::Error EnterSession (lldb::user_id_t debugger_id)
 
llvm::Error LeaveSession ()
 
void CollectDataForBreakpointCommandCallback (std::vector< std::reference_wrapper< BreakpointOptions >> &bp_options_vec, CommandReturnObject &result) override
 
void CollectDataForWatchpointCommandCallback (WatchpointOptions *wp_options, CommandReturnObject &result) override
 
Status SetBreakpointCommandCallback (BreakpointOptions &bp_options, const char *command_body_text) override
 
void SetWatchpointCommandCallback (WatchpointOptions *wp_options, const char *command_body_text) override
 Set a one-liner as the callback for the watchpoint. More...
 
Status SetBreakpointCommandCallbackFunction (BreakpointOptions &bp_options, const char *function_name, StructuredData::ObjectSP extra_args_sp) override
 Set a script function as the callback for the breakpoint. More...
 
- Public Member Functions inherited from lldb_private::ScriptInterpreter
 ScriptInterpreter (Debugger &debugger, lldb::ScriptLanguage script_lang, lldb::ScriptedProcessInterfaceUP scripted_process_interface_up=std::make_unique< ScriptedProcessInterface >())
 
 ~ScriptInterpreter () override=default
 
virtual bool Interrupt ()
 
virtual bool ExecuteOneLineWithReturn (llvm::StringRef in_string, ScriptReturnType return_type, void *ret_value, const ExecuteScriptOptions &options=ExecuteScriptOptions())
 
virtual Status ExecuteMultipleLines (const char *in_string, const ExecuteScriptOptions &options=ExecuteScriptOptions())
 
virtual Status ExportFunctionDefinitionToInterpreter (StringList &function_def)
 
virtual Status GenerateBreakpointCommandCallbackData (StringList &input, std::string &output, bool has_extra_args)
 
virtual bool GenerateWatchpointCommandCallbackData (StringList &input, std::string &output)
 
virtual bool GenerateTypeScriptFunction (const char *oneliner, std::string &output, const void *name_token=nullptr)
 
virtual bool GenerateTypeScriptFunction (StringList &input, std::string &output, const void *name_token=nullptr)
 
virtual bool GenerateScriptAliasFunction (StringList &input, std::string &output)
 
virtual bool GenerateTypeSynthClass (StringList &input, std::string &output, const void *name_token=nullptr)
 
virtual bool GenerateTypeSynthClass (const char *oneliner, std::string &output, const void *name_token=nullptr)
 
virtual StructuredData::ObjectSP CreateSyntheticScriptedProvider (const char *class_name, lldb::ValueObjectSP valobj)
 
virtual StructuredData::GenericSP CreateScriptCommandObject (const char *class_name)
 
virtual StructuredData::GenericSP CreateFrameRecognizer (const char *class_name)
 
virtual lldb::ValueObjectListSP GetRecognizedArguments (const StructuredData::ObjectSP &implementor, lldb::StackFrameSP frame_sp)
 
virtual StructuredData::GenericSP OSPlugin_CreatePluginObject (const char *class_name, lldb::ProcessSP process_sp)
 
virtual StructuredData::DictionarySP OSPlugin_RegisterInfo (StructuredData::ObjectSP os_plugin_object_sp)
 
virtual StructuredData::ArraySP OSPlugin_ThreadsInfo (StructuredData::ObjectSP os_plugin_object_sp)
 
virtual StructuredData::StringSP OSPlugin_RegisterContextData (StructuredData::ObjectSP os_plugin_object_sp, lldb::tid_t thread_id)
 
virtual StructuredData::DictionarySP OSPlugin_CreateThread (StructuredData::ObjectSP os_plugin_object_sp, lldb::tid_t tid, lldb::addr_t context)
 
virtual StructuredData::ObjectSP CreateScriptedThreadPlan (const char *class_name, StructuredDataImpl *args_data, std::string &error_str, lldb::ThreadPlanSP thread_plan_sp)
 
virtual bool ScriptedThreadPlanExplainsStop (StructuredData::ObjectSP implementor_sp, Event *event, bool &script_error)
 
virtual bool ScriptedThreadPlanShouldStop (StructuredData::ObjectSP implementor_sp, Event *event, bool &script_error)
 
virtual bool ScriptedThreadPlanIsStale (StructuredData::ObjectSP implementor_sp, bool &script_error)
 
virtual lldb::StateType ScriptedThreadPlanGetRunState (StructuredData::ObjectSP implementor_sp, bool &script_error)
 
virtual StructuredData::GenericSP CreateScriptedBreakpointResolver (const char *class_name, StructuredDataImpl *args_data, lldb::BreakpointSP &bkpt_sp)
 
virtual bool ScriptedBreakpointResolverSearchCallback (StructuredData::GenericSP implementor_sp, SymbolContext *sym_ctx)
 
virtual lldb::SearchDepth ScriptedBreakpointResolverSearchDepth (StructuredData::GenericSP implementor_sp)
 
virtual StructuredData::GenericSP CreateScriptedStopHook (lldb::TargetSP target_sp, const char *class_name, StructuredDataImpl *args_data, Status &error)
 
virtual bool ScriptedStopHookHandleStop (StructuredData::GenericSP implementor_sp, ExecutionContext &exc_ctx, lldb::StreamSP stream_sp)
 
virtual StructuredData::ObjectSP LoadPluginModule (const FileSpec &file_spec, lldb_private::Status &error)
 
virtual StructuredData::DictionarySP GetDynamicSettings (StructuredData::ObjectSP plugin_module_sp, Target *target, const char *setting_name, lldb_private::Status &error)
 
virtual Status GenerateFunction (const char *signature, const StringList &input)
 
Status SetBreakpointCommandCallback (std::vector< std::reference_wrapper< BreakpointOptions >> &bp_options_vec, const char *callback_text)
 Set the specified text as the callback for the breakpoint. More...
 
virtual Status SetBreakpointCommandCallback (BreakpointOptions &bp_options, std::unique_ptr< BreakpointOptions::CommandData > &data_up)
 This one is for deserialization: More...
 
Status SetBreakpointCommandCallbackFunction (std::vector< std::reference_wrapper< BreakpointOptions >> &bp_options_vec, const char *function_name, StructuredData::ObjectSP extra_args_sp)
 
virtual bool GetScriptedSummary (const char *function_name, lldb::ValueObjectSP valobj, StructuredData::ObjectSP &callee_wrapper_sp, const TypeSummaryOptions &options, std::string &retval)
 
virtual void Clear ()
 
virtual size_t CalculateNumChildren (const StructuredData::ObjectSP &implementor, uint32_t max)
 
virtual lldb::ValueObjectSP GetChildAtIndex (const StructuredData::ObjectSP &implementor, uint32_t idx)
 
virtual int GetIndexOfChildWithName (const StructuredData::ObjectSP &implementor, const char *child_name)
 
virtual bool UpdateSynthProviderInstance (const StructuredData::ObjectSP &implementor)
 
virtual bool MightHaveChildrenSynthProviderInstance (const StructuredData::ObjectSP &implementor)
 
virtual lldb::ValueObjectSP GetSyntheticValue (const StructuredData::ObjectSP &implementor)
 
virtual ConstString GetSyntheticTypeName (const StructuredData::ObjectSP &implementor)
 
virtual bool RunScriptBasedCommand (const char *impl_function, llvm::StringRef args, ScriptedCommandSynchronicity synchronicity, lldb_private::CommandReturnObject &cmd_retobj, Status &error, const lldb_private::ExecutionContext &exe_ctx)
 
virtual bool RunScriptBasedCommand (StructuredData::GenericSP impl_obj_sp, llvm::StringRef args, ScriptedCommandSynchronicity synchronicity, lldb_private::CommandReturnObject &cmd_retobj, Status &error, const lldb_private::ExecutionContext &exe_ctx)
 
virtual bool RunScriptFormatKeyword (const char *impl_function, Process *process, std::string &output, Status &error)
 
virtual bool RunScriptFormatKeyword (const char *impl_function, Thread *thread, std::string &output, Status &error)
 
virtual bool RunScriptFormatKeyword (const char *impl_function, Target *target, std::string &output, Status &error)
 
virtual bool RunScriptFormatKeyword (const char *impl_function, StackFrame *frame, std::string &output, Status &error)
 
virtual bool RunScriptFormatKeyword (const char *impl_function, ValueObject *value, std::string &output, Status &error)
 
virtual bool GetDocumentationForItem (const char *item, std::string &dest)
 
virtual bool GetShortHelpForCommandObject (StructuredData::GenericSP cmd_obj_sp, std::string &dest)
 
virtual uint32_t GetFlagsForCommandObject (StructuredData::GenericSP cmd_obj_sp)
 
virtual bool GetLongHelpForCommandObject (StructuredData::GenericSP cmd_obj_sp, std::string &dest)
 
virtual bool CheckObjectExists (const char *name)
 
virtual bool IsReservedWord (const char *word)
 
virtual std::unique_ptr< ScriptInterpreterLockerAcquireInterpreterLock ()
 
const char * GetScriptInterpreterPtyName ()
 
virtual llvm::Expected< unsigned > GetMaxPositionalArgumentsForCallable (const llvm::StringRef &callable_name)
 
lldb::ScriptLanguage GetLanguage ()
 
ScriptedProcessInterfaceGetScriptedProcessInterface ()
 
lldb::DataExtractorSP GetDataExtractorFromSBData (const lldb::SBData &data) const
 
Status GetStatusFromSBError (const lldb::SBError &error) const
 
- Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
 
virtual ~PluginInterface ()=default
 
 PluginInterface (const PluginInterface &)=delete
 
PluginInterfaceoperator= (const PluginInterface &)=delete
 

Static Public Member Functions

static void Initialize ()
 
static void Terminate ()
 
static lldb::ScriptInterpreterSP CreateInstance (Debugger &debugger)
 
static lldb_private::ConstString GetPluginNameStatic ()
 
static const char * GetPluginDescriptionStatic ()
 
static bool BreakpointCallbackFunction (void *baton, StoppointCallbackContext *context, lldb::user_id_t break_id, lldb::user_id_t break_loc_id)
 
static bool WatchpointCallbackFunction (void *baton, StoppointCallbackContext *context, lldb::user_id_t watch_id)
 
- Static Public Member Functions inherited from lldb_private::ScriptInterpreter
static std::string LanguageToString (lldb::ScriptLanguage language)
 
static lldb::ScriptLanguage StringToLanguage (const llvm::StringRef &string)
 

Private Member Functions

Status RegisterBreakpointCallback (BreakpointOptions &bp_options, const char *command_body_text, StructuredData::ObjectSP extra_args_sp)
 
Status RegisterWatchpointCallback (WatchpointOptions *wp_options, const char *command_body_text, StructuredData::ObjectSP extra_args_sp)
 

Private Attributes

std::unique_ptr< Luam_lua
 
bool m_session_is_active = false
 

Additional Inherited Members

- Public Types inherited from lldb_private::ScriptInterpreter
enum  ScriptReturnType {
  eScriptReturnTypeCharPtr, eScriptReturnTypeBool, eScriptReturnTypeShortInt, eScriptReturnTypeShortIntUnsigned,
  eScriptReturnTypeInt, eScriptReturnTypeIntUnsigned, eScriptReturnTypeLongInt, eScriptReturnTypeLongIntUnsigned,
  eScriptReturnTypeLongLong, eScriptReturnTypeLongLongUnsigned, eScriptReturnTypeFloat, eScriptReturnTypeDouble,
  eScriptReturnTypeChar, eScriptReturnTypeCharStrOrNone, eScriptReturnTypeOpaqueObject
}
 
- Protected Attributes inherited from lldb_private::ScriptInterpreter
Debuggerm_debugger
 
lldb::ScriptLanguage m_script_lang
 
lldb::ScriptedProcessInterfaceUP m_scripted_process_interface_up
 

Detailed Description

Definition at line 22 of file ScriptInterpreterLua.h.

Constructor & Destructor Documentation

◆ ScriptInterpreterLua()

ScriptInterpreterLua::ScriptInterpreterLua ( Debugger debugger)

Definition at line 145 of file ScriptInterpreterLua.cpp.

◆ ~ScriptInterpreterLua()

ScriptInterpreterLua::~ScriptInterpreterLua ( )
overridedefault

Member Function Documentation

◆ BreakpointCallbackFunction()

bool ScriptInterpreterLua::BreakpointCallbackFunction ( void *  baton,
StoppointCallbackContext context,
lldb::user_id_t  break_id,
lldb::user_id_t  break_loc_id 
)
static

◆ CollectDataForBreakpointCommandCallback()

void ScriptInterpreterLua::CollectDataForBreakpointCommandCallback ( std::vector< std::reference_wrapper< BreakpointOptions >> &  bp_options_vec,
CommandReturnObject result 
)
overridevirtual

◆ CollectDataForWatchpointCommandCallback()

void ScriptInterpreterLua::CollectDataForWatchpointCommandCallback ( WatchpointOptions wp_options,
CommandReturnObject result 
)
overridevirtual

◆ CreateInstance()

lldb::ScriptInterpreterSP ScriptInterpreterLua::CreateInstance ( Debugger debugger)
static

Definition at line 386 of file ScriptInterpreterLua.cpp.

Referenced by Initialize().

◆ EnterSession()

llvm::Error ScriptInterpreterLua::EnterSession ( lldb::user_id_t  debugger_id)

Definition at line 235 of file ScriptInterpreterLua.cpp.

References m_lua, and m_session_is_active.

◆ ExecuteInterpreterLoop()

void ScriptInterpreterLua::ExecuteInterpreterLoop ( )
overridevirtual

◆ ExecuteOneLine()

bool ScriptInterpreterLua::ExecuteOneLine ( llvm::StringRef  command,
CommandReturnObject result,
const ExecuteScriptOptions options = ExecuteScriptOptions() 
)
overridevirtual

◆ GetLua()

Lua & ScriptInterpreterLua::GetLua ( )

Definition at line 403 of file ScriptInterpreterLua.cpp.

References m_lua.

Referenced by BreakpointCallbackFunction(), and WatchpointCallbackFunction().

◆ GetPluginDescriptionStatic()

const char * ScriptInterpreterLua::GetPluginDescriptionStatic ( )
static

Definition at line 395 of file ScriptInterpreterLua.cpp.

Referenced by Initialize().

◆ GetPluginName()

lldb_private::ConstString ScriptInterpreterLua::GetPluginName ( )
overridevirtual

Implements lldb_private::PluginInterface.

Definition at line 399 of file ScriptInterpreterLua.cpp.

References GetPluginNameStatic().

◆ GetPluginNameStatic()

lldb_private::ConstString ScriptInterpreterLua::GetPluginNameStatic ( )
static

Definition at line 390 of file ScriptInterpreterLua.cpp.

Referenced by GetPluginName(), and Initialize().

◆ Initialize()

void ScriptInterpreterLua::Initialize ( )
static

◆ LeaveSession()

llvm::Error ScriptInterpreterLua::LeaveSession ( )

Definition at line 248 of file ScriptInterpreterLua.cpp.

References m_lua, and m_session_is_active.

◆ LoadScriptingModule()

bool ScriptInterpreterLua::LoadScriptingModule ( const char *  filename,
const LoadScriptOptions options,
lldb_private::Status error,
StructuredData::ObjectSP module_sp = nullptr,
FileSpec  extra_search_dir = {} 
)
overridevirtual

◆ RegisterBreakpointCallback()

Status ScriptInterpreterLua::RegisterBreakpointCallback ( BreakpointOptions bp_options,
const char *  command_body_text,
StructuredData::ObjectSP  extra_args_sp 
)
private

◆ RegisterWatchpointCallback()

Status ScriptInterpreterLua::RegisterWatchpointCallback ( WatchpointOptions wp_options,
const char *  command_body_text,
StructuredData::ObjectSP  extra_args_sp 
)
private

◆ SetBreakpointCommandCallback()

Status ScriptInterpreterLua::SetBreakpointCommandCallback ( BreakpointOptions bp_options,
const char *  command_body_text 
)
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 345 of file ScriptInterpreterLua.cpp.

References RegisterBreakpointCallback().

◆ SetBreakpointCommandCallbackFunction()

Status ScriptInterpreterLua::SetBreakpointCommandCallbackFunction ( BreakpointOptions bp_options,
const char *  function_name,
StructuredData::ObjectSP  extra_args_sp 
)
overridevirtual

Set a script function as the callback for the breakpoint.

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 336 of file ScriptInterpreterLua.cpp.

References RegisterBreakpointCallback(), and string().

◆ SetWatchpointCommandCallback()

void ScriptInterpreterLua::SetWatchpointCommandCallback ( WatchpointOptions wp_options,
const char *  oneliner 
)
overridevirtual

Set a one-liner as the callback for the watchpoint.

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 365 of file ScriptInterpreterLua.cpp.

References RegisterWatchpointCallback().

◆ Terminate()

void ScriptInterpreterLua::Terminate ( )
static

Definition at line 233 of file ScriptInterpreterLua.cpp.

◆ WatchpointCallbackFunction()

bool ScriptInterpreterLua::WatchpointCallbackFunction ( void *  baton,
StoppointCallbackContext context,
lldb::user_id_t  watch_id 
)
static

Member Data Documentation

◆ m_lua

std::unique_ptr<Lua> lldb_private::ScriptInterpreterLua::m_lua
private

◆ m_session_is_active

bool lldb_private::ScriptInterpreterLua::m_session_is_active = false
private

Definition at line 100 of file ScriptInterpreterLua.h.

Referenced by EnterSession(), and LeaveSession().


The documentation for this class was generated from the following files: