9#ifndef LLDB_TARGET_PROCESSIOHANDLER_H
10#define LLDB_TARGET_PROCESSIOHANDLER_H
56class IOHandlerProcessSTDIOWindows :
public IOHandler {
58 IOHandlerProcessSTDIOWindows(
Process *process);
60 ~IOHandlerProcessSTDIOWindows()
override;
62 void SetIsRunning(
bool running);
72 llvm::Expected<bool> ConsoleHasTextInput(
const HANDLE hStdin);
76 void Cancel()
override;
78 bool Interrupt()
override;
80 void GotEOF()
override {}
83 enum ControlOp :
char {
85 eControlOpInterrupt =
'i',
93 reinterpret_cast<HANDLE>(
static_cast<intptr_t
>(-1));
94 std::atomic<ControlOp> m_pending_op{eControlOpNone};
96 bool m_is_running =
false;
void SetIsRunning(bool running)
~IOHandlerProcessSTDIO() override=default
NativeFile m_write_file
Write to this file (usually the primary pty for getting io to debuggee)
bool Interrupt() override
NativeFile m_read_file
Read from this file (usually actual STDIN for LLDB)
IOHandlerProcessSTDIO(Process *process, int write_fd)
IOHandler(Debugger &debugger, IOHandler::Type type)
A plug-in interface definition class for debugging a process.
A class that represents a running process on the host machine.
NativeFilePosix NativeFile