|
LLDB mainline
|
#include <ScriptInterpreterPythonImpl.h>
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< ScriptInterpreterLocker > | AcquireInterpreterLock () 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::PythonModule & | GetMainModule () |
| python::PythonDictionary & | GetSessionDictionary () |
| python::PythonDictionary & | GetSysModuleDictionary () |
| 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< FileSpec > | GenerateExtensionTemplate (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) |
| Debugger & | GetDebugger () |
| Get the debugger associated with this script interpreter. | |
| const Debugger & | GetDebugger () const |
| Public Member Functions inherited from lldb_private::PluginInterface | |
| PluginInterface ()=default | |
| virtual | ~PluginInterface ()=default |
| PluginInterface (const PluginInterface &)=delete | |
| PluginInterface & | operator= (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< SessionIORedirect > | m_stdout_redirect |
| std::unique_ptr< SessionIORedirect > | m_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::ObjectSP > | GetExtensionSchema (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 | |
| Debugger & | m_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 |
Definition at line 25 of file ScriptInterpreterPythonImpl.h.
| Enumerator | |
|---|---|
| eIOHandlerNone | |
| eIOHandlerBreakpoint | |
| eIOHandlerWatchpoint | |
Definition at line 316 of file ScriptInterpreterPythonImpl.h.
|
strong |
| Enumerator | |
|---|---|
| Beginning | |
| End | |
Definition at line 290 of file ScriptInterpreterPythonImpl.h.
| ScriptInterpreterPythonImpl::ScriptInterpreterPythonImpl | ( | Debugger & | debugger | ) |
Definition at line 754 of file ScriptInterpreterPython.cpp.
References lldb_private::ScriptInterpreterPythonImpl::Locker::AcquireLock, lldb_private::StreamString::Clear(), eIOHandlerNone, lldb_private::ScriptInterpreterPythonImpl::Locker::FreeAcquiredLock, lldb_private::StreamString::GetData(), lldb_private::Invalid, m_active_io_handler, m_command_thread_state, lldb_private::ScriptInterpreter::m_debugger, m_dictionary_name, m_lock_count, m_main_module, m_pty_secondary_is_open, m_run_one_line_function, m_run_one_line_str_global, m_saved_stderr, m_saved_stdin, m_saved_stdout, m_session_dict, m_session_is_active, m_sys_module_dict, m_valid_session, lldb_private::Stream::Printf(), lldb_private::python::RunSimpleString(), and lldb_private::ScriptInterpreterPython::ScriptInterpreterPython().
Referenced by lldb_private::ScriptInterpreterPythonImpl::Locker::Locker().
|
override |
Definition at line 892 of file ScriptInterpreterPython.cpp.
References m_session_dict.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2788 of file ScriptInterpreterPython.cpp.
|
static |
Definition at line 2846 of file ScriptInterpreterPython.cpp.
|
static |
Definition at line 2231 of file ScriptInterpreterPython.cpp.
References lldb_private::ScriptInterpreterPythonImpl::Locker::AcquireLock, lldb_private::ScriptInterpreterPythonImpl::Locker::InitSession, m_dictionary_name, and lldb_private::ScriptInterpreterPythonImpl::Locker::NoSTDIN.
Referenced by SetBreakpointCommandCallback().
|
inlineoverridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 140 of file ScriptInterpreterPythonImpl.h.
References GetDocumentationForItem().
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1668 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1676 of file ScriptInterpreterPython.cpp.
References eIOHandlerBreakpoint, m_active_io_handler, and lldb_private::ScriptInterpreter::m_debugger.
|
static |
Definition at line 989 of file ScriptInterpreterPython.cpp.
Referenced by lldb_private::ScriptInterpreterPython::Initialize(), and lldb_private::ScriptInterpreterPython::Terminate().
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2044 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1999 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2009 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2029 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2034 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1994 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1989 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2004 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2014 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2019 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2024 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2039 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2049 of file ScriptInterpreterPython.cpp.
|
inline |
Definition at line 309 of file ScriptInterpreterPythonImpl.h.
References m_lock_count, and m_mutex.
| 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.
|
overridevirtual |
Implements lldb_private::ScriptInterpreter.
Definition at line 1432 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1617 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Implements lldb_private::ScriptInterpreter.
Definition at line 1340 of file ScriptInterpreterPython.cpp.
References m_run_one_line_function, and m_run_one_line_str_global.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1493 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1797 of file ScriptInterpreterPython.cpp.
References WatchpointCallbackFunction().
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2223 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2120 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1809 of file ScriptInterpreterPython.cpp.
References error().
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1919 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2106 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1891 of file ScriptInterpreterPython.cpp.
References error().
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2113 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1944 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2150 of file ScriptInterpreterPython.cpp.
References error().
|
inline |
Definition at line 205 of file ScriptInterpreterPythonImpl.h.
References m_dictionary_name.
|
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().
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2078 of file ScriptInterpreterPython.cpp.
| bool ScriptInterpreterPythonImpl::GetEmbeddedInterpreterModuleObjects | ( | ) |
Definition at line 1319 of file ScriptInterpreterPython.cpp.
| PythonModule & ScriptInterpreterPythonImpl::GetMainModule | ( | ) |
Definition at line 1239 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1272 of file ScriptInterpreterPython.cpp.
References m_sys_module_dict.
|
inlineoverridevirtual |
Implements lldb_private::PluginInterface.
Definition at line 223 of file ScriptInterpreterPythonImpl.h.
References lldb_private::ScriptInterpreterPython::GetPluginNameStatic().
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2172 of file ScriptInterpreterPython.cpp.
| PythonDictionary & ScriptInterpreterPythonImpl::GetSessionDictionary | ( | ) |
Definition at line 1245 of file ScriptInterpreterPython.cpp.
References lldb_private::python::PythonModule::Import(), and m_main_module.
| PythonDictionary & ScriptInterpreterPythonImpl::GetSysModuleDictionary | ( | ) |
Definition at line 1263 of file ScriptInterpreterPython.cpp.
References lldb_private::python::As(), m_dictionary_name, and m_session_dict.
|
inline |
Definition at line 207 of file ScriptInterpreterPythonImpl.h.
References m_command_thread_state.
|
inline |
Definition at line 304 of file ScriptInterpreterPythonImpl.h.
References m_lock_count, and m_mutex.
|
static |
Definition at line 2795 of file ScriptInterpreterPython.cpp.
References lldb_private::ScriptInterpreterPythonImpl::Locker::AcquireLock, lldb_private::ScriptInterpreterPythonImpl::Locker::FreeLock, lldb_private::ScriptInterpreterPythonImpl::Locker::InitSession, lldb_private::ScriptInterpreterPythonImpl::Locker::NoSTDIN, and lldb_private::ScriptInterpreterPythonImpl::Locker::TearDownSession.
Referenced by lldb_private::ScriptInterpreterPython::Initialize().
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1452 of file ScriptInterpreterPython.cpp.
References lldb_private::Debugger::RunIOHandlerAsync().
|
overridevirtual |
Reimplemented from lldb_private::IOHandlerDelegate.
Definition at line 903 of file ScriptInterpreterPython.cpp.
References eIOHandlerBreakpoint, eIOHandlerNone, eIOHandlerWatchpoint, lldb_private::IOHandler::GetOutputStreamFileSP(), m_active_io_handler, and lldb_private::Stream::PutCString().
|
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.
|
inline |
Definition at line 299 of file ScriptInterpreterPythonImpl.h.
References m_lock_count, and m_mutex.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2668 of file ScriptInterpreterPython.cpp.
References m_dictionary_name.
| void ScriptInterpreterPythonImpl::LeaveSession | ( | ) |
Definition at line 993 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2060 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2478 of file ScriptInterpreterPython.cpp.
| 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.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2709 of file ScriptInterpreterPython.cpp.
References lldb_private::eScriptedCommandSynchronicityCurrentValue.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2342 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2417 of file ScriptInterpreterPython.cpp.
References error().
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2392 of file ScriptInterpreterPython.cpp.
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2367 of file ScriptInterpreterPython.cpp.
References error().
|
overridevirtual |
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 2442 of file ScriptInterpreterPython.cpp.
|
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().
| 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.
|
overridevirtual |
This one is for deserialization:
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1725 of file ScriptInterpreterPython.cpp.
References error().
|
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.
| 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.
|
inline |
Definition at line 209 of file ScriptInterpreterPythonImpl.h.
References m_command_thread_state.
|
overridevirtual |
Set a one-liner as the callback for the watchpoint.
Reimplemented from lldb_private::ScriptInterpreter.
Definition at line 1776 of file ScriptInterpreterPython.cpp.
|
static |
Definition at line 2296 of file ScriptInterpreterPython.cpp.
Referenced by ExportFunctionDefinitionToInterpreter().
|
friend |
Definition at line 27 of file ScriptInterpreterPythonImpl.h.
References error(), and IOHandlerPythonInterpreter.
Referenced by IOHandlerPythonInterpreter.
| ActiveIOHandler lldb_private::ScriptInterpreterPythonImpl::m_active_io_handler |
Definition at line 364 of file ScriptInterpreterPythonImpl.h.
Referenced by CollectDataForWatchpointCommandCallback(), IOHandlerActivated(), ScriptInterpreterPythonImpl(), and SetBreakpointCommandCallbackFunction().
| PyThreadState* lldb_private::ScriptInterpreterPythonImpl::m_command_thread_state |
Definition at line 370 of file ScriptInterpreterPythonImpl.h.
Referenced by GetThreadState(), ScriptInterpreterPythonImpl(), and SetThreadState().
| std::string lldb_private::ScriptInterpreterPythonImpl::m_dictionary_name |
Definition at line 363 of file ScriptInterpreterPythonImpl.h.
Referenced by BreakpointCallbackFunction(), GetDictionaryName(), GetSysModuleDictionary(), IsReservedWord(), and ScriptInterpreterPythonImpl().
| uint32_t lldb_private::ScriptInterpreterPythonImpl::m_lock_count |
Definition at line 368 of file ScriptInterpreterPythonImpl.h.
Referenced by DecrementLockCount(), IncrementLockCount(), IsExecutingPython(), and ScriptInterpreterPythonImpl().
| python::PythonModule lldb_private::ScriptInterpreterPythonImpl::m_main_module |
Definition at line 358 of file ScriptInterpreterPythonImpl.h.
Referenced by GetSessionDictionary(), and ScriptInterpreterPythonImpl().
| std::mutex lldb_private::ScriptInterpreterPythonImpl::m_mutex |
Definition at line 369 of file ScriptInterpreterPythonImpl.h.
Referenced by DecrementLockCount(), IncrementLockCount(), and IsExecutingPython().
| bool lldb_private::ScriptInterpreterPythonImpl::m_pty_secondary_is_open |
Definition at line 366 of file ScriptInterpreterPythonImpl.h.
Referenced by ScriptInterpreterPythonImpl().
| python::PythonObject lldb_private::ScriptInterpreterPythonImpl::m_run_one_line_function |
Definition at line 361 of file ScriptInterpreterPythonImpl.h.
Referenced by ExecuteOneLine(), and ScriptInterpreterPythonImpl().
| python::PythonObject lldb_private::ScriptInterpreterPythonImpl::m_run_one_line_str_global |
Definition at line 362 of file ScriptInterpreterPythonImpl.h.
Referenced by ExecuteOneLine(), and ScriptInterpreterPythonImpl().
| python::PythonObject lldb_private::ScriptInterpreterPythonImpl::m_saved_stderr |
Definition at line 355 of file ScriptInterpreterPythonImpl.h.
Referenced by ScriptInterpreterPythonImpl().
| python::PythonObject lldb_private::ScriptInterpreterPythonImpl::m_saved_stdin |
Definition at line 353 of file ScriptInterpreterPythonImpl.h.
Referenced by ScriptInterpreterPythonImpl().
| python::PythonObject lldb_private::ScriptInterpreterPythonImpl::m_saved_stdout |
Definition at line 354 of file ScriptInterpreterPythonImpl.h.
Referenced by ScriptInterpreterPythonImpl().
| python::PythonDictionary lldb_private::ScriptInterpreterPythonImpl::m_session_dict |
Definition at line 359 of file ScriptInterpreterPythonImpl.h.
Referenced by GetSysModuleDictionary(), ScriptInterpreterPythonImpl(), and ~ScriptInterpreterPythonImpl().
| bool lldb_private::ScriptInterpreterPythonImpl::m_session_is_active |
Definition at line 365 of file ScriptInterpreterPythonImpl.h.
Referenced by RedirectTerminalHandleThroughLock(), and ScriptInterpreterPythonImpl().
| std::unique_ptr<SessionIORedirect> lldb_private::ScriptInterpreterPythonImpl::m_stderr_redirect |
Definition at line 357 of file ScriptInterpreterPythonImpl.h.
Referenced by RedirectTerminalHandleThroughLock().
| std::unique_ptr<SessionIORedirect> lldb_private::ScriptInterpreterPythonImpl::m_stdout_redirect |
Definition at line 356 of file ScriptInterpreterPythonImpl.h.
| python::PythonDictionary lldb_private::ScriptInterpreterPythonImpl::m_sys_module_dict |
Definition at line 360 of file ScriptInterpreterPythonImpl.h.
Referenced by GetMaxPositionalArgumentsForCallable(), and ScriptInterpreterPythonImpl().
| bool lldb_private::ScriptInterpreterPythonImpl::m_valid_session |
Definition at line 367 of file ScriptInterpreterPythonImpl.h.
Referenced by ScriptInterpreterPythonImpl().