summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp')
-rw-r--r--lldb/source/Plugins/Process/POSIX/ProcessPOSIX.cpp24
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()
{
OpenPOWER on IntegriCloud