diff options
Diffstat (limited to 'lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp')
-rw-r--r-- | lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp b/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp index 6f725f5c7e6..417b941a50b 100644 --- a/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp +++ b/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp @@ -206,8 +206,6 @@ ProcessPOSIX::DoLaunch (Module *module, if (!error.Success()) return error; - SetSTDIOFileDescriptor(m_monitor->GetTerminalFD()); - SetID(m_monitor->GetPID()); return error; } @@ -279,6 +277,7 @@ ProcessPOSIX::DoHalt(bool &caused_stop) { caused_stop = true; } + return error; } @@ -585,6 +584,27 @@ ProcessPOSIX::PutSTDIN(const char *buf, size_t len, Error &error) return status; } +size_t +ProcessPOSIX::GetSTDOUT(char *buf, size_t len, Error &error) +{ + ssize_t bytes_read; + + // The terminal file descriptor is always in non-block mode. + if ((bytes_read = read(m_monitor->GetTerminalFD(), buf, len)) < 0) + { + if (errno != EAGAIN) + error.SetErrorToErrno(); + return 0; + } + return bytes_read; +} + +size_t +ProcessPOSIX::GetSTDERR(char *buf, size_t len, Error &error) +{ + return GetSTDOUT(buf, len, error); +} + UnixSignals & ProcessPOSIX::GetUnixSignals() { |