diff --git a/lldb/test/Shell/lldb-server/TestErrorMessages.test b/lldb/test/Shell/lldb-server/TestErrorMessages.test --- a/lldb/test/Shell/lldb-server/TestErrorMessages.test +++ b/lldb/test/Shell/lldb-server/TestErrorMessages.test @@ -1,13 +1,13 @@ -RUN: %lldb-server gdbserver --fd 2>&1 | FileCheck --check-prefixes=FD1,ALL %s +RUN: not %lldb-server gdbserver --fd 2>&1 | FileCheck --check-prefixes=FD1,ALL %s FD1: error: --fd: missing argument -RUN: %lldb-server gdbserver --fd three 2>&1 | FileCheck --check-prefixes=FD2,ALL %s +RUN: not %lldb-server gdbserver --fd three 2>&1 | FileCheck --check-prefixes=FD2,ALL %s FD2: error: invalid '--fd' argument -RUN: %lldb-server gdbserver --bogus 2>&1 | FileCheck --check-prefixes=BOGUS,ALL %s +RUN: not %lldb-server gdbserver --bogus 2>&1 | FileCheck --check-prefixes=BOGUS,ALL %s BOGUS: error: unknown argument '--bogus' -RUN: %lldb-server gdbserver 2>&1 | FileCheck --check-prefixes=CONN,ALL %s +RUN: not %lldb-server gdbserver 2>&1 | FileCheck --check-prefixes=CONN,ALL %s CONN: error: no connection arguments ALL: Use '{{.*}} g[dbserver] --help' for a complete list of options. diff --git a/lldb/tools/lldb-server/lldb-server.cpp b/lldb/tools/lldb-server/lldb-server.cpp --- a/lldb/tools/lldb-server/lldb-server.cpp +++ b/lldb/tools/lldb-server/lldb-server.cpp @@ -52,29 +52,29 @@ llvm::InitLLVM IL(argc, argv, /*InstallPipeSignalExitHandler=*/false); llvm::PrettyStackTraceProgram X(argc, argv); - int option_error = 0; const char *progname = argv[0]; if (argc < 2) { display_usage(progname); - exit(option_error); + exit(1); } + int ret = 0; switch (argv[1][0]) { case 'g': llgs::initialize(); - main_gdbserver(argc, argv); + ret = main_gdbserver(argc, argv); llgs::terminate_debugger(); - break; case 'p': llgs::initialize(); - main_platform(argc, argv); + ret = main_platform(argc, argv); llgs::terminate_debugger(); - break; case 'v': fprintf(stderr, "%s\n", lldb_private::GetVersion()); + ret = 0; break; default: display_usage(progname); - exit(option_error); + ret = 1; } + return ret; }