[Lldb-commits] [lldb] r223308 - Improve the comments on PutSTDIN, GetSTDOUT, and GetSTDERR.
Zachary Turner
zturner at google.com
Wed Dec 3 15:15:14 PST 2014
Author: zturner
Date: Wed Dec 3 17:15:14 2014
New Revision: 223308
URL: http://llvm.org/viewvc/llvm-project?rev=223308&view=rev
Log:
Improve the comments on PutSTDIN, GetSTDOUT, and GetSTDERR.
Differential Revision: http://reviews.llvm.org/D6513
Modified:
lldb/trunk/include/lldb/Target/Process.h
Modified: lldb/trunk/include/lldb/Target/Process.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/Process.h?rev=223308&r1=223307&r2=223308&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Target/Process.h (original)
+++ lldb/trunk/include/lldb/Target/Process.h Wed Dec 3 17:15:14 2014
@@ -2477,17 +2477,26 @@ public:
//------------------------------------------------------------------
/// Get any available STDOUT.
///
- /// If the process was launched without supplying valid file paths
- /// for stdin, stdout, and stderr, then the Process class might
- /// try to cache the STDOUT for the process if it is able. Events
- /// will be queued indicating that there is STDOUT available that
- /// can be retrieved using this function.
+ /// Calling this method is a valid operation only if all of the
+ /// following conditions are true:
+ /// 1) The process was launched, and not attached to.
+ /// 2) The process was not launched with eLaunchFlagDisableSTDIO.
+ /// 3) The process was launched without supplying a valid file path
+ /// for STDOUT.
+ ///
+ /// Note that the implementation will probably need to start a read
+ /// thread in the background to make sure that the pipe is drained
+ /// and the STDOUT buffered appropriately, to prevent the process
+ /// from deadlocking trying to write to a full buffer.
+ ///
+ /// Events will be queued indicating that there is STDOUT available
+ /// that can be retrieved using this function.
///
/// @param[out] buf
/// A buffer that will receive any STDOUT bytes that are
/// currently available.
///
- /// @param[out] buf_size
+ /// @param[in] buf_size
/// The size in bytes for the buffer \a buf.
///
/// @return
@@ -2501,13 +2510,22 @@ public:
//------------------------------------------------------------------
/// Get any available STDERR.
///
- /// If the process was launched without supplying valid file paths
- /// for stdin, stdout, and stderr, then the Process class might
- /// try to cache the STDERR for the process if it is able. Events
- /// will be queued indicating that there is STDERR available that
- /// can be retrieved using this function.
+ /// Calling this method is a valid operation only if all of the
+ /// following conditions are true:
+ /// 1) The process was launched, and not attached to.
+ /// 2) The process was not launched with eLaunchFlagDisableSTDIO.
+ /// 3) The process was launched without supplying a valid file path
+ /// for STDERR.
+ ///
+ /// Note that the implementation will probably need to start a read
+ /// thread in the background to make sure that the pipe is drained
+ /// and the STDERR buffered appropriately, to prevent the process
+ /// from deadlocking trying to write to a full buffer.
///
- /// @param[out] buf
+ /// Events will be queued indicating that there is STDERR available
+ /// that can be retrieved using this function.
+ ///
+ /// @param[in] buf
/// A buffer that will receive any STDERR bytes that are
/// currently available.
///
@@ -2522,6 +2540,27 @@ public:
virtual size_t
GetSTDERR (char *buf, size_t buf_size, Error &error);
+ //------------------------------------------------------------------
+ /// Puts data into this process's STDIN.
+ ///
+ /// Calling this method is a valid operation only if all of the
+ /// following conditions are true:
+ /// 1) The process was launched, and not attached to.
+ /// 2) The process was not launched with eLaunchFlagDisableSTDIO.
+ /// 3) The process was launched without supplying a valid file path
+ /// for STDIN.
+ ///
+ /// @param[in] buf
+ /// A buffer that contains the data to write to the process's STDIN.
+ ///
+ /// @param[in] buf_size
+ /// The size in bytes for the buffer \a buf.
+ ///
+ /// @return
+ /// The number of bytes written into \a buf. If this value is
+ /// less than \a buf_size, another call to this function should
+ /// be made to write the rest of the data.
+ //------------------------------------------------------------------
virtual size_t
PutSTDIN (const char *buf, size_t buf_size, Error &error)
{
More information about the lldb-commits
mailing list