From 94b1ff72f57ac38052aa0a44b12904fba04d5bb6 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Wed, 6 Mar 2019 21:52:19 +0000 Subject: [PATCH] Sanity check --max-gdbserver-port In mail [lldb-dev] Remote debugging a docker process https://lists.llvm.org/pipermail/lldb-dev/2019-March/014795.html user was confused by --min-gdbserver-port and --max-gdbserver-port options being ignored. I think there is even a bug that --max-gdbserver-port is upper exclusive limit (and not upper inclusive limit appropriate for max). At least this patch should catch such mistake by an error message. The question is whether --max-gdbserver-port should not be changed to really be max and not max+1 but that would break backward compatibility. Now the mail example does produce: error: --min-gdbserver-port (5001) is not lower than --max-gdbserver-port (5001) Differential Revision: https://reviews.llvm.org/D58962 llvm-svn: 355554 --- lldb/lit/helper/toolchain.py | 4 ++++ lldb/lit/tools/lldb-server/TestGdbserverPort.test | 2 ++ lldb/tools/lldb-server/lldb-platform.cpp | 6 +++--- 3 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 lldb/lit/tools/lldb-server/TestGdbserverPort.test diff --git a/lldb/lit/helper/toolchain.py b/lldb/lit/helper/toolchain.py index 75812c3..ff5fd4d 100644 --- a/lldb/lit/helper/toolchain.py +++ b/lldb/lit/helper/toolchain.py @@ -45,6 +45,10 @@ def use_lldb_substitutions(config): command=FindTool(dsname), extra_args=dsargs, unresolved='ignore'), + ToolSubst('%platformserver', + command=FindTool('lldb-server'), + extra_args=['platform'], + unresolved='ignore'), 'lldb-test', 'lldb-instr', ToolSubst('%build', diff --git a/lldb/lit/tools/lldb-server/TestGdbserverPort.test b/lldb/lit/tools/lldb-server/TestGdbserverPort.test new file mode 100644 index 0000000..a9c4f0f --- /dev/null +++ b/lldb/lit/tools/lldb-server/TestGdbserverPort.test @@ -0,0 +1,2 @@ +# RUN: %platformserver p --server --listen :1234 --min-gdbserver-port 1234 --max-gdbserver-port 1234 2>&1 | FileCheck %s +# CHECK: error: --min-gdbserver-port (1234) is not lower than --max-gdbserver-port (1234) diff --git a/lldb/tools/lldb-server/lldb-platform.cpp b/lldb/tools/lldb-server/lldb-platform.cpp index 688f00e..4f0abc4 100644 --- a/lldb/tools/lldb-server/lldb-platform.cpp +++ b/lldb/tools/lldb-server/lldb-platform.cpp @@ -241,11 +241,11 @@ int main_platform(int argc, char *argv[]) { return -1; // Make a port map for a port range that was specified. - if (min_gdbserver_port < max_gdbserver_port) { + if (min_gdbserver_port && min_gdbserver_port < max_gdbserver_port) { for (uint16_t port = min_gdbserver_port; port < max_gdbserver_port; ++port) gdbserver_portmap[port] = LLDB_INVALID_PROCESS_ID; - } else if (min_gdbserver_port != max_gdbserver_port) { - fprintf(stderr, "error: --min-gdbserver-port (%u) is greater than " + } else if (min_gdbserver_port || max_gdbserver_port) { + fprintf(stderr, "error: --min-gdbserver-port (%u) is not lower than " "--max-gdbserver-port (%u)\n", min_gdbserver_port, max_gdbserver_port); option_error = 3; -- 2.7.4