LLDB mainline
lldb_private::ScriptInterpreterPythonImpl Class Reference

#include <ScriptInterpreterPythonImpl.h>

Inheritance diagram for lldb_private::ScriptInterpreterPythonImpl:
[legend]

Classes

class  Locker
class  SessionIORedirect
 A Python sys.stdout/stderr file backed by a pipe whose read end is drained by a reader thread that writes to the debugger's terminal under the output lock (Debugger::PrintAsync). More...
class  SynchronicityHandler

Public Types

enum class  AddLocation { Beginning , End }
enum  ActiveIOHandler { eIOHandlerNone , eIOHandlerBreakpoint , eIOHandlerWatchpoint }
Public Types inherited from lldb_private::ScriptInterpreter
enum  ScriptReturnType {
  eScriptReturnTypeCharPtr , eScriptReturnTypeBool , eScriptReturnTypeShortInt , eScriptReturnTypeShortIntUnsigned ,
  eScriptReturnTypeInt , eScriptReturnTypeIntUnsigned , eScriptReturnTypeLongInt , eScriptReturnTypeLongIntUnsigned ,
  eScriptReturnTypeLongLong , eScriptReturnTypeLongLongUnsigned , eScriptReturnTypeFloat , eScriptReturnTypeDouble ,
  eScriptReturnTypeChar , eScriptReturnTypeCharStrOrNone , eScriptReturnTypeOpaqueObject
}
Public Types inherited from lldb_private::IOHandlerDelegate
enum class  Completion { None , LLDBCommand , Expression }

Public Member Functions

 ScriptInterpreterPythonImpl (Debugger &debugger)
 ~ScriptInterpreterPythonImpl () override
bool Interrupt () override
bool ExecuteOneLine (llvm::StringRef command, CommandReturnObject *result, const ExecuteScriptOptions &options=ExecuteScriptOptions()) override
void ExecuteInterpreterLoop () override
bool ExecuteOneLineWithReturn (llvm::StringRef in_string, ScriptInterpreter::ScriptReturnType return_type, void *ret_value, const ExecuteScriptOptions &options=ExecuteScriptOptions()) override
lldb_private::Status ExecuteMultipleLines (const char *in_string, const ExecuteScriptOptions &options=ExecuteScriptOptions()) override
Status ExportFunctionDefinitionToInterpreter (StringList &function_def) override
bool GenerateTypeScriptFunction (StringList &input, std::string &output, const void *name_token=nullptr) override
bool GenerateTypeSynthClass (StringList &input, std::string &output, const void *name_token=nullptr) override
bool GenerateTypeSynthClass (const char *oneliner, std::string &output, const void *name_token=nullptr) override
bool GenerateTypeScriptFunction (const char *oneliner, std::string &output, const void *name_token=nullptr) override
bool GenerateScriptAliasFunction (StringList &input, std::string &output) override
StructuredData::ObjectSP CreateStructuredDataFromScriptObject (ScriptObject obj) override
lldb::ScriptedProcessInterfaceUP CreateScriptedProcessInterface () override
lldb::ScriptedHookInterfaceSP CreateScriptedHookInterface () override
lldb::ScriptedBreakpointInterfaceSP CreateScriptedBreakpointInterface () override
lldb::ScriptedStackFrameRecognizerInterfaceSP CreateScriptedStackFrameRecognizerInterface () override
lldb::ScriptedCommandInterfaceSP CreateScriptedCommandInterface () override
lldb::ScriptedStringSummaryInterfaceSP CreateScriptedStringSummaryInterface () override
lldb::ScriptedSyntheticChildrenInterfaceSP CreateScriptedSyntheticChildrenInterface () override
lldb::ScriptedThreadInterfaceSP CreateScriptedThreadInterface () override
lldb::ScriptedFrameInterfaceSP CreateScriptedFrameInterface () override
lldb::ScriptedFrameProviderInterfaceSP CreateScriptedFrameProviderInterface () override
lldb::ScriptedThreadPlanInterfaceSP CreateScriptedThreadPlanInterface () override
lldb::OperatingSystemInterfaceSP CreateOperatingSystemInterface () override
StructuredData::ObjectSP LoadPluginModule (const FileSpec &file_spec, lldb_private::Status &error) override
StructuredData::DictionarySP GetDynamicSettings (StructuredData::ObjectSP plugin_module_sp, Target *target, const char *setting_name, lldb_private::Status &error) override
bool RunScriptBasedCommand (const char *impl_function, llvm::StringRef args, ScriptedCommandSynchronicity synchronicity, lldb_private::CommandReturnObject &cmd_retobj, Status &error, const lldb_private::ExecutionContext &exe_ctx) override
Status GenerateFunction (const char *signature, const StringList &input, bool is_callback) override
Status GenerateBreakpointCommandCallbackData (StringList &input, std::string &output, bool has_extra_args, bool is_callback) override
bool GenerateWatchpointCommandCallbackData (StringList &input, std::string &output, bool is_callback) override
bool GetScriptedSummary (const char *function_name, lldb::ValueObjectSP valobj, StructuredData::ObjectSP &callee_wrapper_sp, const TypeSummaryOptions &options, std::string &retval) override
bool FormatterCallbackFunction (const char *function_name, lldb::TypeImplSP type_impl_sp) override
bool GetDocumentationForItem (const char *item, std::string &dest) override
 In Python, a special attribute doc contains the docstring for an object (function, method, class, ...) if any is defined Otherwise, the attribute's value is None.
bool CheckObjectExists (const char *name) override
bool RunScriptFormatKeyword (const char *impl_function, Process *process, std::string &output, Status &error) override
bool RunScriptFormatKeyword (const char *impl_function, Thread *thread, std::string &output, Status &error) override
bool RunScriptFormatKeyword (const char *impl_function, Target *target, std::string &output, Status &error) override
bool RunScriptFormatKeyword (const char *impl_function, StackFrame *frame, std::string &output, Status &error) override
bool RunScriptFormatKeyword (const char *impl_function, ValueObject *value, std::string &output, Status &error) override
bool LoadScriptingModule (const char *filename, const LoadScriptOptions &options, lldb_private::Status &error, StructuredData::ObjectSP *module_sp=nullptr, FileSpec extra_search_dir={}, lldb::TargetSP loaded_into_target_sp={}) override
bool IsReservedWord (const char *word) override
std::unique_ptr< ScriptInterpreterLockerAcquireInterpreterLock () override
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 *callback_body, bool is_callback) override
 Set the callback body text into the callback for the breakpoint.
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.
Status SetBreakpointCommandCallback (BreakpointOptions &bp_options, std::unique_ptr< BreakpointOptions::CommandData > &data_up) override
 This one is for deserialization:
Status SetBreakpointCommandCallback (BreakpointOptions &bp_options, const char *command_body_text, StructuredData::ObjectSP extra_args_sp, bool uses_extra_args, bool is_callback)
void SetWatchpointCommandCallback (WatchpointOptions *wp_options, const char *user_input, bool is_callback) override
 Set a one-liner as the callback for the watchpoint.
const char * GetDictionaryName ()
PyThreadState * GetThreadState ()
void SetThreadState (PyThreadState *s)
void IOHandlerActivated (IOHandler &io_handler, bool interactive) override
void IOHandlerInputComplete (IOHandler &io_handler, std::string &data) override
 Called when a line or lines have been retrieved.
llvm::StringRef GetPluginName () override
bool EnterSession (uint16_t on_entry_flags, lldb::FileSP in, lldb::FileSP out, lldb::FileSP err)
void LeaveSession ()
uint32_t IsExecutingPython ()
uint32_t IncrementLockCount ()
uint32_t DecrementLockCount ()
python::PythonModuleGetMainModule ()
python::PythonDictionaryGetSessionDictionary ()
python::PythonDictionaryGetSysModuleDictionary ()
llvm::Expected< unsigned > GetMaxPositionalArgumentsForCallable (const llvm::StringRef &callable_name) override
bool GetEmbeddedInterpreterModuleObjects ()
bool SetStdHandle (lldb::FileSP file, const char *py_name, python::PythonObject &save_file, const char *mode, bool serialize_terminal_output)
 Point sys.
bool RedirectTerminalHandleThroughLock (const char *py_name, python::PythonObject &save_file, const char *mode, File &file)
 If file is the debugger's own terminal, point sys.
Public Member Functions inherited from lldb_private::ScriptInterpreterPython
 ScriptInterpreterPython (Debugger &debugger)
llvm::Expected< std::string > ExtensionToImportPath (lldb::ScriptedExtension extension) override
StructuredData::DictionarySP GetInterpreterInfo () override
llvm::Expected< FileSpecGenerateExtensionTemplate (const std::string &name, std::vector< ExtensionTemplateRequest > &extensions, bool generate_non_abstract_methods, std::string output_file) override
Public Member Functions inherited from lldb_private::ScriptInterpreter
 ScriptInterpreter (Debugger &debugger, lldb::ScriptLanguage script_lang)
 ~ScriptInterpreter () override=default
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.
Status SetBreakpointCommandCallbackFunction (std::vector< std::reference_wrapper< BreakpointOptions > > &bp_options_vec, const char *function_name, StructuredData::ObjectSP extra_args_sp)
virtual void Clear ()
const char * GetScriptInterpreterPtyName ()
lldb::ScriptLanguage GetLanguage ()
virtual lldb::ScriptedPlatformInterfaceUP GetScriptedPlatformInterface ()
virtual SanitizedScriptingModuleName GetSanitizedScriptingModuleName (llvm::StringRef name)
DebuggerGetDebugger ()
 Get the debugger associated with this script interpreter.
const DebuggerGetDebugger () const
Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
virtual ~PluginInterface ()=default
 PluginInterface (const PluginInterface &)=delete
PluginInterfaceoperator= (const PluginInterface &)=delete
Public Member Functions inherited from lldb_private::IOHandlerDelegateMultiline
 IOHandlerDelegateMultiline (llvm::StringRef end_line, Completion completion=Completion::None)
 ~IOHandlerDelegateMultiline () override=default
llvm::StringRef IOHandlerGetControlSequence (char ch) override
bool IOHandlerIsInputComplete (IOHandler &io_handler, StringList &lines) override
 Called to determine whether typing enter after the last line in lines should end input.
Public Member Functions inherited from lldb_private::IOHandlerDelegate
 IOHandlerDelegate (Completion completion=Completion::None)
virtual ~IOHandlerDelegate ()=default
virtual void IOHandlerDeactivated (IOHandler &io_handler)
virtual std::optional< std::string > IOHandlerSuggestion (IOHandler &io_handler, llvm::StringRef line)
virtual void IOHandlerComplete (IOHandler &io_handler, CompletionRequest &request)
virtual const char * IOHandlerGetFixIndentationCharacters ()
virtual int IOHandlerFixIndentation (IOHandler &io_handler, const StringList &lines, int cursor_position)
 Called when a new line is created or one of an identified set of indentation characters is typed.
virtual void IOHandlerInputInterrupted (IOHandler &io_handler, std::string &data)
virtual const char * IOHandlerGetCommandPrefix ()
virtual const char * IOHandlerGetHelpPrologue ()
virtual bool IOHandlerInterrupt (IOHandler &io_handler)

Static Public Member Functions

static lldb::ScriptInterpreterSP CreateInstance (Debugger &debugger)
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 void Initialize ()
static void AddToSysPath (AddLocation location, std::string path)
Static Public Member Functions inherited from lldb_private::ScriptInterpreterPython
static void Initialize ()
static void Terminate ()
static llvm::StringRef GetPluginNameStatic ()
static llvm::StringRef GetPluginDescriptionStatic ()
static FileSpec GetPythonDir ()
static void SharedLibraryDirectoryHelper (FileSpec &this_file)
Static Public Member Functions inherited from lldb_private::ScriptInterpreter
static std::string LanguageToString (lldb::ScriptLanguage language)
static lldb::ScriptLanguage StringToLanguage (const llvm::StringRef &string)
static llvm::StringLiteral ExtensionToString (lldb::ScriptedExtension extension)
static lldb::ScriptedExtension StringToExtension (llvm::StringRef string)

Public Attributes

python::PythonObject m_saved_stdin
python::PythonObject m_saved_stdout
python::PythonObject m_saved_stderr
std::unique_ptr< SessionIORedirectm_stdout_redirect
std::unique_ptr< SessionIORedirectm_stderr_redirect
python::PythonModule m_main_module
python::PythonDictionary m_session_dict
python::PythonDictionary m_sys_module_dict
python::PythonObject m_run_one_line_function
python::PythonObject m_run_one_line_str_global
std::string m_dictionary_name
ActiveIOHandler m_active_io_handler
bool m_session_is_active
bool m_pty_secondary_is_open
bool m_valid_session
uint32_t m_lock_count
std::mutex m_mutex
PyThreadState * m_command_thread_state

Friends

class IOHandlerPythonInterpreter

Additional Inherited Members

Protected Member Functions inherited from lldb_private::ScriptInterpreterPython
llvm::Error ParseExtensionSchema (Stream &s, llvm::StringRef output_script_prefix, const llvm::SmallVector< llvm::StringRef > &extension_path, bool generate_non_abstract_methods, std::set< std::string > &typing_imports)
llvm::Expected< StructuredData::ObjectSPGetExtensionSchema (const llvm::SmallVector< llvm::StringRef > &extension_path)
Static Protected Member Functions inherited from lldb_private::ScriptInterpreterPython
static void ComputePythonDirForApple (llvm::SmallVectorImpl< char > &path)
static void ComputePythonDir (llvm::SmallVectorImpl< char > &path)
Protected Attributes inherited from lldb_private::ScriptInterpreter
Debuggerm_debugger
lldb::ScriptLanguage m_script_lang
Protected Attributes inherited from lldb_private::IOHandlerDelegateMultiline
const std::string m_end_line
Protected Attributes inherited from lldb_private::IOHandlerDelegate
Completion m_completion

Detailed Description

Definition at line 25 of file ScriptInterpreterPythonImpl.h.

Member Enumeration Documentation

◆ ActiveIOHandler

Enumerator
eIOHandlerNone 
eIOHandlerBreakpoint 
eIOHandlerWatchpoint 

Definition at line 316 of file ScriptInterpreterPythonImpl.h.

◆ AddLocation

Enumerator
Beginning 
End 

Definition at line 290 of file ScriptInterpreterPythonImpl.h.

Constructor & Destructor Documentation

◆ ScriptInterpreterPythonImpl()

◆ ~ScriptInterpreterPythonImpl()

ScriptInterpreterPythonImpl::~ScriptInterpreterPythonImpl ( )
override

Definition at line 892 of file ScriptInterpreterPython.cpp.

References m_session_dict.

Member Function Documentation

◆ AcquireInterpreterLock()

std::unique_ptr< ScriptInterpreterLocker > ScriptInterpreterPythonImpl::AcquireInterpreterLock ( )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2788 of file ScriptInterpreterPython.cpp.

◆ AddToSysPath()

void ScriptInterpreterPythonImpl::AddToSysPath ( AddLocation location,
std::string path )
static

Definition at line 2846 of file ScriptInterpreterPython.cpp.

◆ BreakpointCallbackFunction()

◆ CheckObjectExists()

bool lldb_private::ScriptInterpreterPythonImpl::CheckObjectExists ( const char * name)
inlineoverridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 140 of file ScriptInterpreterPythonImpl.h.

References GetDocumentationForItem().

◆ CollectDataForBreakpointCommandCallback()

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

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1668 of file ScriptInterpreterPython.cpp.

◆ CollectDataForWatchpointCommandCallback()

void ScriptInterpreterPythonImpl::CollectDataForWatchpointCommandCallback ( WatchpointOptions * wp_options,
CommandReturnObject & result )
overridevirtual

◆ CreateInstance()

lldb::ScriptInterpreterSP ScriptInterpreterPythonImpl::CreateInstance ( Debugger & debugger)
static

◆ CreateOperatingSystemInterface()

OperatingSystemInterfaceSP ScriptInterpreterPythonImpl::CreateOperatingSystemInterface ( )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2044 of file ScriptInterpreterPython.cpp.

◆ CreateScriptedBreakpointInterface()

ScriptedBreakpointInterfaceSP ScriptInterpreterPythonImpl::CreateScriptedBreakpointInterface ( )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1999 of file ScriptInterpreterPython.cpp.

◆ CreateScriptedCommandInterface()

ScriptedCommandInterfaceSP ScriptInterpreterPythonImpl::CreateScriptedCommandInterface ( )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2009 of file ScriptInterpreterPython.cpp.

◆ CreateScriptedFrameInterface()

ScriptedFrameInterfaceSP ScriptInterpreterPythonImpl::CreateScriptedFrameInterface ( )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2029 of file ScriptInterpreterPython.cpp.

◆ CreateScriptedFrameProviderInterface()

ScriptedFrameProviderInterfaceSP ScriptInterpreterPythonImpl::CreateScriptedFrameProviderInterface ( )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2034 of file ScriptInterpreterPython.cpp.

◆ CreateScriptedHookInterface()

ScriptedHookInterfaceSP ScriptInterpreterPythonImpl::CreateScriptedHookInterface ( )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1994 of file ScriptInterpreterPython.cpp.

◆ CreateScriptedProcessInterface()

ScriptedProcessInterfaceUP ScriptInterpreterPythonImpl::CreateScriptedProcessInterface ( )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1989 of file ScriptInterpreterPython.cpp.

◆ CreateScriptedStackFrameRecognizerInterface()

ScriptedStackFrameRecognizerInterfaceSP ScriptInterpreterPythonImpl::CreateScriptedStackFrameRecognizerInterface ( )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2004 of file ScriptInterpreterPython.cpp.

◆ CreateScriptedStringSummaryInterface()

ScriptedStringSummaryInterfaceSP ScriptInterpreterPythonImpl::CreateScriptedStringSummaryInterface ( )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2014 of file ScriptInterpreterPython.cpp.

◆ CreateScriptedSyntheticChildrenInterface()

ScriptedSyntheticChildrenInterfaceSP ScriptInterpreterPythonImpl::CreateScriptedSyntheticChildrenInterface ( )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2019 of file ScriptInterpreterPython.cpp.

◆ CreateScriptedThreadInterface()

ScriptedThreadInterfaceSP ScriptInterpreterPythonImpl::CreateScriptedThreadInterface ( )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2024 of file ScriptInterpreterPython.cpp.

◆ CreateScriptedThreadPlanInterface()

ScriptedThreadPlanInterfaceSP ScriptInterpreterPythonImpl::CreateScriptedThreadPlanInterface ( )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2039 of file ScriptInterpreterPython.cpp.

◆ CreateStructuredDataFromScriptObject()

StructuredData::ObjectSP ScriptInterpreterPythonImpl::CreateStructuredDataFromScriptObject ( ScriptObject obj)
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2049 of file ScriptInterpreterPython.cpp.

◆ DecrementLockCount()

uint32_t lldb_private::ScriptInterpreterPythonImpl::DecrementLockCount ( )
inline

Definition at line 309 of file ScriptInterpreterPythonImpl.h.

References m_lock_count, and m_mutex.

◆ EnterSession()

bool ScriptInterpreterPythonImpl::EnterSession ( uint16_t on_entry_flags,
lldb::FileSP in,
lldb::FileSP out,
lldb::FileSP err )

Definition at line 1145 of file ScriptInterpreterPython.cpp.

◆ ExecuteInterpreterLoop()

void ScriptInterpreterPythonImpl::ExecuteInterpreterLoop ( )
overridevirtual

Implements lldb_private::ScriptInterpreter.

Definition at line 1432 of file ScriptInterpreterPython.cpp.

◆ ExecuteMultipleLines()

Status ScriptInterpreterPythonImpl::ExecuteMultipleLines ( const char * in_string,
const ExecuteScriptOptions & options = ExecuteScriptOptions() )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1617 of file ScriptInterpreterPython.cpp.

◆ ExecuteOneLine()

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

◆ ExecuteOneLineWithReturn()

bool ScriptInterpreterPythonImpl::ExecuteOneLineWithReturn ( llvm::StringRef in_string,
ScriptInterpreter::ScriptReturnType return_type,
void * ret_value,
const ExecuteScriptOptions & options = ExecuteScriptOptions() )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1493 of file ScriptInterpreterPython.cpp.

◆ ExportFunctionDefinitionToInterpreter()

Status ScriptInterpreterPythonImpl::ExportFunctionDefinitionToInterpreter ( StringList & function_def)
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1797 of file ScriptInterpreterPython.cpp.

References WatchpointCallbackFunction().

◆ FormatterCallbackFunction()

bool ScriptInterpreterPythonImpl::FormatterCallbackFunction ( const char * function_name,
lldb::TypeImplSP type_impl_sp )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2223 of file ScriptInterpreterPython.cpp.

◆ GenerateBreakpointCommandCallbackData()

Status ScriptInterpreterPythonImpl::GenerateBreakpointCommandCallbackData ( StringList & input,
std::string & output,
bool has_extra_args,
bool is_callback )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2120 of file ScriptInterpreterPython.cpp.

◆ GenerateFunction()

Status ScriptInterpreterPythonImpl::GenerateFunction ( const char * signature,
const StringList & input,
bool is_callback )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1809 of file ScriptInterpreterPython.cpp.

References error().

◆ GenerateScriptAliasFunction()

bool ScriptInterpreterPythonImpl::GenerateScriptAliasFunction ( StringList & input,
std::string & output )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1919 of file ScriptInterpreterPython.cpp.

◆ GenerateTypeScriptFunction() [1/2]

bool ScriptInterpreterPythonImpl::GenerateTypeScriptFunction ( const char * oneliner,
std::string & output,
const void * name_token = nullptr )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2106 of file ScriptInterpreterPython.cpp.

◆ GenerateTypeScriptFunction() [2/2]

bool ScriptInterpreterPythonImpl::GenerateTypeScriptFunction ( StringList & input,
std::string & output,
const void * name_token = nullptr )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1891 of file ScriptInterpreterPython.cpp.

References error().

◆ GenerateTypeSynthClass() [1/2]

bool ScriptInterpreterPythonImpl::GenerateTypeSynthClass ( const char * oneliner,
std::string & output,
const void * name_token = nullptr )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2113 of file ScriptInterpreterPython.cpp.

◆ GenerateTypeSynthClass() [2/2]

bool ScriptInterpreterPythonImpl::GenerateTypeSynthClass ( StringList & input,
std::string & output,
const void * name_token = nullptr )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1944 of file ScriptInterpreterPython.cpp.

◆ GenerateWatchpointCommandCallbackData()

bool ScriptInterpreterPythonImpl::GenerateWatchpointCommandCallbackData ( StringList & input,
std::string & output,
bool is_callback )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2150 of file ScriptInterpreterPython.cpp.

References error().

◆ GetDictionaryName()

const char * lldb_private::ScriptInterpreterPythonImpl::GetDictionaryName ( )
inline

Definition at line 205 of file ScriptInterpreterPythonImpl.h.

References m_dictionary_name.

◆ GetDocumentationForItem()

bool ScriptInterpreterPythonImpl::GetDocumentationForItem ( const char * item,
std::string & dest )
overridevirtual

In Python, a special attribute doc contains the docstring for an object (function, method, class, ...) if any is defined Otherwise, the attribute's value is None.

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2757 of file ScriptInterpreterPython.cpp.

Referenced by CheckObjectExists().

◆ GetDynamicSettings()

StructuredData::DictionarySP ScriptInterpreterPythonImpl::GetDynamicSettings ( StructuredData::ObjectSP plugin_module_sp,
Target * target,
const char * setting_name,
lldb_private::Status & error )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2078 of file ScriptInterpreterPython.cpp.

◆ GetEmbeddedInterpreterModuleObjects()

bool ScriptInterpreterPythonImpl::GetEmbeddedInterpreterModuleObjects ( )

Definition at line 1319 of file ScriptInterpreterPython.cpp.

◆ GetMainModule()

PythonModule & ScriptInterpreterPythonImpl::GetMainModule ( )

Definition at line 1239 of file ScriptInterpreterPython.cpp.

◆ GetMaxPositionalArgumentsForCallable()

llvm::Expected< unsigned > ScriptInterpreterPythonImpl::GetMaxPositionalArgumentsForCallable ( const llvm::StringRef & callable_name)
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1272 of file ScriptInterpreterPython.cpp.

References m_sys_module_dict.

◆ GetPluginName()

llvm::StringRef lldb_private::ScriptInterpreterPythonImpl::GetPluginName ( )
inlineoverridevirtual

◆ GetScriptedSummary()

bool ScriptInterpreterPythonImpl::GetScriptedSummary ( const char * function_name,
lldb::ValueObjectSP valobj,
StructuredData::ObjectSP & callee_wrapper_sp,
const TypeSummaryOptions & options,
std::string & retval )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2172 of file ScriptInterpreterPython.cpp.

◆ GetSessionDictionary()

PythonDictionary & ScriptInterpreterPythonImpl::GetSessionDictionary ( )

◆ GetSysModuleDictionary()

PythonDictionary & ScriptInterpreterPythonImpl::GetSysModuleDictionary ( )

◆ GetThreadState()

PyThreadState * lldb_private::ScriptInterpreterPythonImpl::GetThreadState ( )
inline

Definition at line 207 of file ScriptInterpreterPythonImpl.h.

References m_command_thread_state.

◆ IncrementLockCount()

uint32_t lldb_private::ScriptInterpreterPythonImpl::IncrementLockCount ( )
inline

Definition at line 304 of file ScriptInterpreterPythonImpl.h.

References m_lock_count, and m_mutex.

◆ Initialize()

◆ Interrupt()

bool ScriptInterpreterPythonImpl::Interrupt ( )
overridevirtual

◆ IOHandlerActivated()

void ScriptInterpreterPythonImpl::IOHandlerActivated ( IOHandler & io_handler,
bool interactive )
overridevirtual

◆ IOHandlerInputComplete()

void ScriptInterpreterPythonImpl::IOHandlerInputComplete ( IOHandler & io_handler,
std::string & data )
overridevirtual

Called when a line or lines have been retrieved.

This function can handle the current line and possibly call IOHandler::SetIsDone(true) when the IO handler is done like when "quit" is entered as a command, of when an empty line is received. It is up to the delegate to determine when a line should cause a IOHandler to exit.

Implements lldb_private::IOHandlerDelegate.

Definition at line 927 of file ScriptInterpreterPython.cpp.

◆ IsExecutingPython()

uint32_t lldb_private::ScriptInterpreterPythonImpl::IsExecutingPython ( )
inline

Definition at line 299 of file ScriptInterpreterPythonImpl.h.

References m_lock_count, and m_mutex.

◆ IsReservedWord()

bool ScriptInterpreterPythonImpl::IsReservedWord ( const char * word)
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2668 of file ScriptInterpreterPython.cpp.

References m_dictionary_name.

◆ LeaveSession()

void ScriptInterpreterPythonImpl::LeaveSession ( )

Definition at line 993 of file ScriptInterpreterPython.cpp.

◆ LoadPluginModule()

StructuredData::ObjectSP ScriptInterpreterPythonImpl::LoadPluginModule ( const FileSpec & file_spec,
lldb_private::Status & error )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2060 of file ScriptInterpreterPython.cpp.

◆ LoadScriptingModule()

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

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2478 of file ScriptInterpreterPython.cpp.

◆ RedirectTerminalHandleThroughLock()

bool ScriptInterpreterPythonImpl::RedirectTerminalHandleThroughLock ( const char * py_name,
python::PythonObject & save_file,
const char * mode,
File & file )

If file is the debugger's own terminal, point sys.

py_name at a pipe-backed file whose writes are serialized through the output lock (see SessionIORedirect) and return true. Return false to let SetStdHandle wrap file normally.

Definition at line 1053 of file ScriptInterpreterPython.cpp.

References m_session_is_active, and m_stderr_redirect.

◆ RunScriptBasedCommand()

bool ScriptInterpreterPythonImpl::RunScriptBasedCommand ( const char * impl_function,
llvm::StringRef args,
ScriptedCommandSynchronicity synchronicity,
lldb_private::CommandReturnObject & cmd_retobj,
Status & error,
const lldb_private::ExecutionContext & exe_ctx )
overridevirtual

◆ RunScriptFormatKeyword() [1/5]

bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword ( const char * impl_function,
Process * process,
std::string & output,
Status & error )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2342 of file ScriptInterpreterPython.cpp.

◆ RunScriptFormatKeyword() [2/5]

bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword ( const char * impl_function,
StackFrame * frame,
std::string & output,
Status & error )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2417 of file ScriptInterpreterPython.cpp.

References error().

◆ RunScriptFormatKeyword() [3/5]

bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword ( const char * impl_function,
Target * target,
std::string & output,
Status & error )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2392 of file ScriptInterpreterPython.cpp.

◆ RunScriptFormatKeyword() [4/5]

bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword ( const char * impl_function,
Thread * thread,
std::string & output,
Status & error )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2367 of file ScriptInterpreterPython.cpp.

References error().

◆ RunScriptFormatKeyword() [5/5]

bool ScriptInterpreterPythonImpl::RunScriptFormatKeyword ( const char * impl_function,
ValueObject * value,
std::string & output,
Status & error )
overridevirtual

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 2442 of file ScriptInterpreterPython.cpp.

◆ SetBreakpointCommandCallback() [1/3]

Status ScriptInterpreterPythonImpl::SetBreakpointCommandCallback ( BreakpointOptions & bp_options,
const char * callback_body,
bool is_callback )
overridevirtual

Set the callback body text into the callback for the breakpoint.

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1743 of file ScriptInterpreterPython.cpp.

References BreakpointCallbackFunction(), and error().

◆ SetBreakpointCommandCallback() [2/3]

Status ScriptInterpreterPythonImpl::SetBreakpointCommandCallback ( BreakpointOptions & bp_options,
const char * command_body_text,
StructuredData::ObjectSP extra_args_sp,
bool uses_extra_args,
bool is_callback )

Definition at line 1751 of file ScriptInterpreterPython.cpp.

◆ SetBreakpointCommandCallback() [3/3]

Status ScriptInterpreterPythonImpl::SetBreakpointCommandCallback ( BreakpointOptions & bp_options,
std::unique_ptr< BreakpointOptions::CommandData > & data_up )
overridevirtual

This one is for deserialization:

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1725 of file ScriptInterpreterPython.cpp.

References error().

◆ SetBreakpointCommandCallbackFunction()

Status ScriptInterpreterPythonImpl::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 1683 of file ScriptInterpreterPython.cpp.

References eIOHandlerWatchpoint, m_active_io_handler, and lldb_private::ScriptInterpreter::m_debugger.

◆ SetStdHandle()

bool ScriptInterpreterPythonImpl::SetStdHandle ( lldb::FileSP file,
const char * py_name,
python::PythonObject & save_file,
const char * mode,
bool serialize_terminal_output )

Point sys.

py_name at file. When serialize_terminal_output is true and file is the debugger's own terminal, the output is routed through a lock-synchronized pipe instead (see RedirectTerminalHandleThroughLock) so it cannot race the statusline redraw.

Definition at line 1107 of file ScriptInterpreterPython.cpp.

◆ SetThreadState()

void lldb_private::ScriptInterpreterPythonImpl::SetThreadState ( PyThreadState * s)
inline

Definition at line 209 of file ScriptInterpreterPythonImpl.h.

References m_command_thread_state.

◆ SetWatchpointCommandCallback()

void ScriptInterpreterPythonImpl::SetWatchpointCommandCallback ( WatchpointOptions * wp_options,
const char * user_input,
bool is_callback )
overridevirtual

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

Reimplemented from lldb_private::ScriptInterpreter.

Definition at line 1776 of file ScriptInterpreterPython.cpp.

◆ WatchpointCallbackFunction()

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

Definition at line 2296 of file ScriptInterpreterPython.cpp.

Referenced by ExportFunctionDefinitionToInterpreter().

◆ IOHandlerPythonInterpreter

friend class IOHandlerPythonInterpreter
friend

Definition at line 27 of file ScriptInterpreterPythonImpl.h.

References error(), and IOHandlerPythonInterpreter.

Referenced by IOHandlerPythonInterpreter.

Member Data Documentation

◆ m_active_io_handler

ActiveIOHandler lldb_private::ScriptInterpreterPythonImpl::m_active_io_handler

◆ m_command_thread_state

PyThreadState* lldb_private::ScriptInterpreterPythonImpl::m_command_thread_state

◆ m_dictionary_name

std::string lldb_private::ScriptInterpreterPythonImpl::m_dictionary_name

◆ m_lock_count

uint32_t lldb_private::ScriptInterpreterPythonImpl::m_lock_count

◆ m_main_module

python::PythonModule lldb_private::ScriptInterpreterPythonImpl::m_main_module

◆ m_mutex

std::mutex lldb_private::ScriptInterpreterPythonImpl::m_mutex

◆ m_pty_secondary_is_open

bool lldb_private::ScriptInterpreterPythonImpl::m_pty_secondary_is_open

Definition at line 366 of file ScriptInterpreterPythonImpl.h.

Referenced by ScriptInterpreterPythonImpl().

◆ m_run_one_line_function

python::PythonObject lldb_private::ScriptInterpreterPythonImpl::m_run_one_line_function

Definition at line 361 of file ScriptInterpreterPythonImpl.h.

Referenced by ExecuteOneLine(), and ScriptInterpreterPythonImpl().

◆ m_run_one_line_str_global

python::PythonObject lldb_private::ScriptInterpreterPythonImpl::m_run_one_line_str_global

Definition at line 362 of file ScriptInterpreterPythonImpl.h.

Referenced by ExecuteOneLine(), and ScriptInterpreterPythonImpl().

◆ m_saved_stderr

python::PythonObject lldb_private::ScriptInterpreterPythonImpl::m_saved_stderr

Definition at line 355 of file ScriptInterpreterPythonImpl.h.

Referenced by ScriptInterpreterPythonImpl().

◆ m_saved_stdin

python::PythonObject lldb_private::ScriptInterpreterPythonImpl::m_saved_stdin

Definition at line 353 of file ScriptInterpreterPythonImpl.h.

Referenced by ScriptInterpreterPythonImpl().

◆ m_saved_stdout

python::PythonObject lldb_private::ScriptInterpreterPythonImpl::m_saved_stdout

Definition at line 354 of file ScriptInterpreterPythonImpl.h.

Referenced by ScriptInterpreterPythonImpl().

◆ m_session_dict

python::PythonDictionary lldb_private::ScriptInterpreterPythonImpl::m_session_dict

◆ m_session_is_active

bool lldb_private::ScriptInterpreterPythonImpl::m_session_is_active

◆ m_stderr_redirect

std::unique_ptr<SessionIORedirect> lldb_private::ScriptInterpreterPythonImpl::m_stderr_redirect

Definition at line 357 of file ScriptInterpreterPythonImpl.h.

Referenced by RedirectTerminalHandleThroughLock().

◆ m_stdout_redirect

std::unique_ptr<SessionIORedirect> lldb_private::ScriptInterpreterPythonImpl::m_stdout_redirect

Definition at line 356 of file ScriptInterpreterPythonImpl.h.

◆ m_sys_module_dict

python::PythonDictionary lldb_private::ScriptInterpreterPythonImpl::m_sys_module_dict

◆ m_valid_session

bool lldb_private::ScriptInterpreterPythonImpl::m_valid_session

Definition at line 367 of file ScriptInterpreterPythonImpl.h.

Referenced by ScriptInterpreterPythonImpl().


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