|
LLDB mainline
|
Public Member Functions | |
| IOHandlerProcessSTDIOWindows (Process *process, HANDLE conpty_input) | |
| ~IOHandlerProcessSTDIOWindows () override | |
| void | SetIsRunning (bool running) |
| llvm::Expected< bool > | ConsoleHasTextInput (const HANDLE hStdin) |
| Peek the console for input. | |
| void | Run () override |
| void | Cancel () override |
| bool | Interrupt () override |
| void | GotEOF () override |
| Public Member Functions inherited from lldb_private::IOHandler | |
| 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 () |
| 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) |
Private Types | |
| enum | ControlOp : char { eControlOpQuit = 'q' , eControlOpInterrupt = 'i' , eControlOpNone = 0 } |
Private Attributes | |
| Process * | m_process |
| NativeFile | m_read_file |
| Read from this file (usually actual STDIN for LLDB) | |
| HANDLE | m_write_file = INVALID_HANDLE_VALUE |
| Write to this file (usually the primary pty for getting io to debuggee) | |
| HANDLE | m_interrupt_event = INVALID_HANDLE_VALUE |
| std::atomic< ControlOp > | m_pending_op {eControlOpNone} |
| std::mutex | m_mutex |
| bool | m_is_running = false |
Additional Inherited Members | |
| Public Types inherited from lldb_private::IOHandler | |
| enum class | Type { CommandInterpreter , CommandList , Confirm , Curses , Expression , REPL , ProcessIO , PythonInterpreter , LuaInterpreter , PythonCode , Other } |
| Protected Attributes inherited from lldb_private::IOHandler | |
| 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 |
Definition at line 957 of file ProcessWindows.cpp.
|
private |
| Enumerator | |
|---|---|
| eControlOpQuit | |
| eControlOpInterrupt | |
| eControlOpNone | |
Definition at line 1119 of file ProcessWindows.cpp.
|
inline |
Definition at line 959 of file ProcessWindows.cpp.
References lldb_private::IOHandler::GetDebugger(), lldb_private::IOHandler::GetInputFD(), lldb_private::IOHandler::IOHandler(), m_interrupt_event, m_process, m_read_file, m_write_file, and lldb_private::IOHandler::ProcessIO.
|
inlineoverride |
Definition at line 969 of file ProcessWindows.cpp.
References m_interrupt_event.
|
inlineoverridevirtual |
Implements lldb_private::IOHandler.
Definition at line 1094 of file ProcessWindows.cpp.
References eControlOpQuit, m_interrupt_event, m_is_running, m_mutex, m_pending_op, and lldb_private::IOHandler::SetIsDone().
|
inline |
Peek the console for input.
If it has any, drain the pipe until text input is found or the pipe is empty.
| hStdin | The handle to the standard input's pipe. |
Definition at line 988 of file ProcessWindows.cpp.
Referenced by Run().
|
inlineoverridevirtual |
Implements lldb_private::IOHandler.
Definition at line 1116 of file ProcessWindows.cpp.
|
inlineoverridevirtual |
Implements lldb_private::IOHandler.
Definition at line 1103 of file ProcessWindows.cpp.
References eControlOpInterrupt, lldb_private::IOHandler::m_active, m_interrupt_event, m_pending_op, m_process, and lldb_private::StateIsRunningState().
|
inlineoverridevirtual |
Implements lldb_private::IOHandler.
Definition at line 1016 of file ProcessWindows.cpp.
References ConsoleHasTextInput(), eControlOpInterrupt, eControlOpNone, eControlOpQuit, lldb_private::IOHandler::GetIsDone(), lldb_private::GetLog(), LLDB_LOG_ERROR, m_interrupt_event, m_mutex, m_pending_op, m_process, m_read_file, m_write_file, lldb_private::Process, lldb_private::IOHandler::SetIsDone(), SetIsRunning(), and lldb_private::StateIsRunningState().
|
inline |
Definition at line 974 of file ProcessWindows.cpp.
References m_is_running, m_mutex, and lldb_private::IOHandler::SetIsDone().
Referenced by Run().
|
private |
Definition at line 1130 of file ProcessWindows.cpp.
Referenced by Cancel(), Interrupt(), IOHandlerProcessSTDIOWindows(), Run(), and ~IOHandlerProcessSTDIOWindows().
|
private |
Definition at line 1133 of file ProcessWindows.cpp.
Referenced by Cancel(), and SetIsRunning().
|
private |
Definition at line 1132 of file ProcessWindows.cpp.
Referenced by Cancel(), Run(), and SetIsRunning().
|
private |
Definition at line 1131 of file ProcessWindows.cpp.
Referenced by Cancel(), Interrupt(), and Run().
|
private |
Definition at line 1125 of file ProcessWindows.cpp.
Referenced by Interrupt(), IOHandlerProcessSTDIOWindows(), and Run().
|
private |
Read from this file (usually actual STDIN for LLDB)
Definition at line 1127 of file ProcessWindows.cpp.
Referenced by IOHandlerProcessSTDIOWindows(), and Run().
|
private |
Write to this file (usually the primary pty for getting io to debuggee)
Definition at line 1129 of file ProcessWindows.cpp.
Referenced by IOHandlerProcessSTDIOWindows(), and Run().