LLDB mainline
|
#include <IOHandler.h>
Public Types | |
enum class | Type { CommandInterpreter , CommandList , Confirm , Curses , Expression , REPL , ProcessIO , PythonInterpreter , LuaInterpreter , PythonCode , Other } |
Public Member Functions | |
IOHandler (Debugger &debugger, IOHandler::Type type) | |
IOHandler (Debugger &debugger, IOHandler::Type type, const lldb::FileSP &input_sp, const lldb::LockableStreamFileSP &output_sp, const lldb::LockableStreamFileSP &error_sp, uint32_t flags) | |
virtual | ~IOHandler () |
virtual void | Run ()=0 |
virtual void | Cancel ()=0 |
virtual bool | Interrupt ()=0 |
virtual void | GotEOF ()=0 |
bool | IsActive () |
void | SetIsDone (bool b) |
bool | GetIsDone () |
Type | GetType () const |
virtual void | Activate () |
virtual void | Deactivate () |
virtual void | TerminalSizeChanged () |
virtual void | Refresh () |
virtual const char * | GetPrompt () |
virtual bool | SetPrompt (llvm::StringRef prompt) |
virtual bool | SetUseColor (bool use_color) |
bool | SetPrompt (const char *)=delete |
virtual llvm::StringRef | GetControlSequence (char ch) |
virtual const char * | GetCommandPrefix () |
virtual const char * | GetHelpPrologue () |
int | GetInputFD () |
int | GetOutputFD () |
int | GetErrorFD () |
lldb::FileSP | GetInputFileSP () |
lldb::LockableStreamFileSP | GetOutputStreamFileSP () |
lldb::LockableStreamFileSP | GetErrorStreamFileSP () |
Debugger & | GetDebugger () |
void * | GetUserData () |
void | SetUserData (void *user_data) |
Flags & | GetFlags () |
const Flags & | GetFlags () const |
bool | GetIsInteractive () |
Check if the input is being supplied interactively by a user. | |
bool | GetIsRealTerminal () |
Check if the input is coming from a real terminal. | |
void | SetPopped (bool b) |
void | WaitForPop () |
virtual void | PrintAsync (const char *s, size_t len, bool is_stdout) |
Protected Attributes | |
Debugger & | m_debugger |
lldb::FileSP | m_input_sp |
lldb::LockableStreamFileSP | m_output_sp |
lldb::LockableStreamFileSP | m_error_sp |
Predicate< bool > | m_popped |
Flags | m_flags |
Type | m_type |
void * | m_user_data |
bool | m_done |
bool | m_active |
Private Member Functions | |
IOHandler (const IOHandler &)=delete | |
const IOHandler & | operator= (const IOHandler &)=delete |
Definition at line 37 of file IOHandler.h.
|
strong |
Enumerator | |
---|---|
CommandInterpreter | |
CommandList | |
Confirm | |
Curses | |
Expression | |
REPL | |
ProcessIO | |
PythonInterpreter | |
LuaInterpreter | |
PythonCode | |
Other |
Definition at line 39 of file IOHandler.h.
IOHandler::IOHandler | ( | Debugger & | debugger, |
IOHandler::Type | type ) |
Definition at line 55 of file IOHandler.cpp.
References IOHandler().
Referenced by IOHandler(), IOHandler(), lldb_private::IOHandlerEditline::IOHandlerEditline(), IOHandlerProcessSTDIO::IOHandlerProcessSTDIO(), and operator=().
IOHandler::IOHandler | ( | Debugger & | debugger, |
IOHandler::Type | type, | ||
const lldb::FileSP & | input_sp, | ||
const lldb::LockableStreamFileSP & | output_sp, | ||
const lldb::LockableStreamFileSP & | error_sp, | ||
uint32_t | flags ) |
Definition at line 64 of file IOHandler.cpp.
References lldb_private::Debugger::AdoptTopIOHandlerFilesIfInvalid(), m_active, m_debugger, m_done, m_error_sp, m_flags, m_input_sp, m_output_sp, m_popped, m_type, and m_user_data.
|
virtualdefault |
|
privatedelete |
References IOHandler().
|
inlinevirtual |
Reimplemented in lldb_private::IOHandlerCursesGUI, and lldb_private::IOHandlerEditline.
Definition at line 87 of file IOHandler.h.
References m_active.
Referenced by lldb_private::IOHandlerEditline::Activate().
|
pure virtual |
Implemented in IOHandlerProcessSTDIO, lldb_private::IOHandlerCursesGUI, and lldb_private::IOHandlerEditline.
|
inlinevirtual |
Reimplemented in lldb_private::IOHandlerCursesGUI, and lldb_private::IOHandlerEditline.
Definition at line 89 of file IOHandler.h.
References m_active.
Referenced by lldb_private::IOHandlerEditline::Deactivate().
|
inlinevirtual |
Reimplemented in lldb_private::IOHandlerEditline.
Definition at line 114 of file IOHandler.h.
|
inlinevirtual |
Reimplemented in lldb_private::IOHandlerEditline.
Definition at line 112 of file IOHandler.h.
|
inline |
Definition at line 130 of file IOHandler.h.
References m_debugger.
Referenced by lldb_private::IOHandlerDelegate::IOHandlerComplete(), lldb_private::REPL::IOHandlerFixIndentation(), IOHandlerProcessSTDIO::IOHandlerProcessSTDIO(), and lldb_private::IOHandlerDelegate::IOHandlerSuggestion().
int IOHandler::GetErrorFD | ( | ) |
Definition at line 87 of file IOHandler.cpp.
References m_error_sp.
LockableStreamFileSP IOHandler::GetErrorStreamFileSP | ( | ) |
Definition at line 95 of file IOHandler.cpp.
References m_error_sp.
Referenced by lldb_private::REPL::IOHandlerActivated(), CommandObjectCommandsScriptAdd::IOHandlerInputComplete(), CommandObjectTypeSummaryAdd::IOHandlerInputComplete(), CommandObjectTypeSynthAdd::IOHandlerInputComplete(), IOHandlerLuaInterpreter::IOHandlerInputComplete(), lldb_private::REPL::IOHandlerInputComplete(), and lldb_private::CommandInterpreter::PrintCommandOutput().
|
inline |
Definition at line 136 of file IOHandler.h.
References m_flags.
Referenced by lldb_private::CommandInterpreter::IOHandlerInputComplete().
|
inline |
Definition at line 138 of file IOHandler.h.
References m_flags.
|
inlinevirtual |
Reimplemented in lldb_private::IOHandlerEditline.
Definition at line 116 of file IOHandler.h.
int IOHandler::GetInputFD | ( | ) |
Definition at line 79 of file IOHandler.cpp.
References m_input_sp.
Referenced by IOHandlerProcessSTDIO::IOHandlerProcessSTDIO().
FileSP IOHandler::GetInputFileSP | ( | ) |
Definition at line 91 of file IOHandler.cpp.
References m_input_sp.
Referenced by GetIsInteractive(), and GetIsRealTerminal().
|
inline |
Definition at line 83 of file IOHandler.h.
References m_done.
Referenced by IOHandlerProcessSTDIO::Run().
bool IOHandler::GetIsInteractive | ( | ) |
Check if the input is being supplied interactively by a user.
This will return true if the input stream is a terminal (tty or pty) and can cause IO handlers to do different things (like for a confirmation when deleting all breakpoints).
Definition at line 97 of file IOHandler.cpp.
References GetInputFileSP().
Referenced by lldb_private::IOHandlerEditline::Activate(), lldb_private::IOHandlerEditline::GetLine(), lldb_private::IOHandlerEditline::GetLines(), and lldb_private::CommandInterpreter::IOHandlerInputComplete().
bool IOHandler::GetIsRealTerminal | ( | ) |
Check if the input is coming from a real terminal.
A real terminal has a valid size with a certain number of rows and columns. If this function returns true, then terminal escape sequences are expected to work (cursor movement escape sequences, clearing lines, etc).
Definition at line 101 of file IOHandler.cpp.
References GetInputFileSP().
int IOHandler::GetOutputFD | ( | ) |
Definition at line 83 of file IOHandler.cpp.
References m_output_sp.
LockableStreamFileSP IOHandler::GetOutputStreamFileSP | ( | ) |
Definition at line 93 of file IOHandler.cpp.
References m_output_sp.
Referenced by CommandObjectTargetStopHookAdd::DoExecute(), CommandObjectCommandsScriptAdd::IOHandlerActivated(), CommandObjectTypeSummaryAdd::IOHandlerActivated(), CommandObjectTypeSynthAdd::IOHandlerActivated(), IOHandlerLuaInterpreter::IOHandlerActivated(), CommandObjectCommandsAddRegex::IOHandlerInputComplete(), lldb_private::CommandInterpreter::IOHandlerInputComplete(), lldb_private::REPL::IOHandlerInputComplete(), and lldb_private::CommandInterpreter::PrintCommandOutput().
|
inlinevirtual |
Reimplemented in lldb_private::IOHandlerEditline.
Definition at line 95 of file IOHandler.h.
Referenced by lldb_private::CommandInterpreter::IOHandlerInputComplete().
|
inline |
Definition at line 85 of file IOHandler.h.
References m_type.
|
inline |
Definition at line 132 of file IOHandler.h.
References m_user_data.
Referenced by CommandObjectTypeSummaryAdd::IOHandlerInputComplete(), CommandObjectTypeSynthAdd::IOHandlerInputComplete(), and IOHandlerLuaInterpreter::IOHandlerInputComplete().
|
pure virtual |
Implemented in IOHandlerProcessSTDIO, lldb_private::IOHandlerCursesGUI, and lldb_private::IOHandlerEditline.
|
pure virtual |
Implemented in IOHandlerProcessSTDIO, lldb_private::IOHandlerCursesGUI, and lldb_private::IOHandlerEditline.
|
inline |
Definition at line 79 of file IOHandler.h.
References m_active, and m_done.
Referenced by lldb_private::IOHandlerEditline::Run().
References IOHandler().
|
virtual |
Reimplemented in lldb_private::IOHandlerEditline.
Definition at line 109 of file IOHandler.cpp.
References m_error_sp, m_output_sp, and lldb_private::Stream::Write().
Referenced by lldb_private::IOHandlerEditline::PrintAsync().
|
inlinevirtual |
Reimplemented in lldb_private::IOHandlerEditline.
Definition at line 93 of file IOHandler.h.
|
pure virtual |
Implemented in IOHandlerProcessSTDIO, lldb_private::IOHandlerCursesGUI, and lldb_private::IOHandlerEditline.
|
inline |
Definition at line 81 of file IOHandler.h.
References m_done.
Referenced by IOHandlerProcessSTDIO::Cancel(), lldb_private::IOHandlerEditline::GetLine(), lldb_private::REPL::IOHandlerActivated(), CommandObjectCommandsScriptAdd::IOHandlerInputComplete(), CommandObjectTypeSummaryAdd::IOHandlerInputComplete(), CommandObjectTypeSynthAdd::IOHandlerInputComplete(), IOHandlerLuaInterpreter::IOHandlerInputComplete(), lldb_private::CommandInterpreter::IOHandlerInputComplete(), lldb_private::IOHandlerConfirm::IOHandlerInputComplete(), lldb_private::REPL::IOHandlerInputComplete(), IOHandlerProcessSTDIO::Run(), and IOHandlerProcessSTDIO::SetIsRunning().
void IOHandler::SetPopped | ( | bool | b | ) |
Definition at line 105 of file IOHandler.cpp.
References lldb_private::eBroadcastOnChange, and m_popped.
|
delete |
|
inlinevirtual |
Reimplemented in lldb_private::IOHandlerEditline.
Definition at line 100 of file IOHandler.h.
Reimplemented in lldb_private::IOHandlerEditline.
Definition at line 105 of file IOHandler.h.
|
inline |
Definition at line 134 of file IOHandler.h.
References m_user_data.
|
inlinevirtual |
Reimplemented in lldb_private::IOHandlerCursesGUI, and lldb_private::IOHandlerEditline.
Definition at line 91 of file IOHandler.h.
void IOHandler::WaitForPop | ( | ) |
Definition at line 107 of file IOHandler.cpp.
References m_popped.
|
protected |
Definition at line 171 of file IOHandler.h.
Referenced by Activate(), Deactivate(), IOHandlerProcessSTDIO::Interrupt(), IOHandler(), and IsActive().
|
protected |
Definition at line 162 of file IOHandler.h.
Referenced by GetDebugger(), IOHandler(), lldb_private::IOHandlerEditline::SetPrompt(), and lldb_private::IOHandlerEditline::SetUseColor().
|
protected |
Definition at line 170 of file IOHandler.h.
Referenced by GetIsDone(), IOHandler(), IsActive(), lldb_private::IOHandlerEditline::Run(), and SetIsDone().
|
protected |
Definition at line 165 of file IOHandler.h.
Referenced by GetErrorFD(), GetErrorStreamFileSP(), IOHandler(), lldb_private::IOHandlerEditline::IOHandlerEditline(), PrintAsync(), and lldb_private::IOHandlerEditline::PrintAsync().
|
protected |
Definition at line 167 of file IOHandler.h.
Referenced by GetFlags(), GetFlags(), and IOHandler().
|
protected |
Definition at line 163 of file IOHandler.h.
Referenced by GetInputFD(), GetInputFileSP(), lldb_private::IOHandlerEditline::GetLine(), IOHandler(), and lldb_private::IOHandlerEditline::IOHandlerEditline().
|
protected |
Definition at line 164 of file IOHandler.h.
Referenced by lldb_private::IOHandlerEditline::GetLine(), lldb_private::IOHandlerEditline::GetLines(), GetOutputFD(), GetOutputStreamFileSP(), IOHandler(), lldb_private::IOHandlerEditline::IOHandlerEditline(), PrintAsync(), and lldb_private::IOHandlerEditline::PrintAsync().
Definition at line 166 of file IOHandler.h.
Referenced by IOHandler(), SetPopped(), and WaitForPop().
|
protected |
Definition at line 168 of file IOHandler.h.
Referenced by GetType(), and IOHandler().
|
protected |
Definition at line 169 of file IOHandler.h.
Referenced by GetUserData(), IOHandler(), and SetUserData().