diff options
Diffstat (limited to 'lldb/test/tools/lldb-gdbserver/main.cpp')
| -rw-r--r-- | lldb/test/tools/lldb-gdbserver/main.cpp | 30 |
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; } |

