summaryrefslogtreecommitdiffstats
path: root/lldb/test/tools/lldb-gdbserver/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/test/tools/lldb-gdbserver/main.cpp')
-rw-r--r--lldb/test/tools/lldb-gdbserver/main.cpp30
1 files changed, 27 insertions, 3 deletions
diff --git a/lldb/test/tools/lldb-gdbserver/main.cpp b/lldb/test/tools/lldb-gdbserver/main.cpp
index 3dbff671899..88c397cadb9 100644
--- a/lldb/test/tools/lldb-gdbserver/main.cpp
+++ b/lldb/test/tools/lldb-gdbserver/main.cpp
@@ -1,7 +1,31 @@
+#include <cstdlib>
+#include <cstring>
#include <iostream>
-int main(int argc, char **argv)
+static const char *const STDERR_PREFIX = "stderr:";
+static const char *const RETVAL_PREFIX = "retval:";
+
+int main (int argc, char **argv)
{
- std::cout << "hello, world" << std::endl;
- return 0;
+ int return_value = 0;
+
+ for (int i = 1; i < argc; ++i)
+ {
+ if (std::strstr (argv[i], STDERR_PREFIX))
+ {
+ // Treat remainder as text to go to stderr.
+ std::cerr << (argv[i] + strlen (STDERR_PREFIX)) << std::endl;
+ }
+ else if (std::strstr (argv[i], RETVAL_PREFIX))
+ {
+ // Treat as the return value for the program.
+ return_value = std::atoi (argv[i] + strlen (RETVAL_PREFIX));
+ }
+ else
+ {
+ // Treat the argument as text for stdout.
+ std::cout << argv[i] << std::endl;
+ }
+ }
+ return return_value;
}
OpenPOWER on IntegriCloud