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
This commit is contained in:
Jan Kratochvil 2019-03-06 21:52:19 +00:00
parent 0e4c482124
commit 94b1ff72f5
3 changed files with 9 additions and 3 deletions

View File

@ -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',

View File

@ -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)

View File

@ -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;