aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2017-08-07 13:55:37 -0700
committerTim Newsome <tim@sifive.com>2017-08-07 13:55:37 -0700
commitb89780722448007ac1168e77b6e803560a100365 (patch)
treed18dd0f83107ee45cbf596e3f99ff26118a76322
parentb9822ab1b867e50f4e4b8b85b9f42b464dd6451d (diff)
downloadriscv-openocd-gdb_next_port.zip
riscv-openocd-gdb_next_port.tar.gz
riscv-openocd-gdb_next_port.tar.bz2
When gdb_port is 0, don't increment it.gdb_next_port
Usually incrementing to get the next port is a good idea, but when set to 0 the idea is to find an arbitrary unallocated port. 1 is almost certainly not helpful.
-rw-r--r--src/server/gdb_server.c8
-rw-r--r--src/server/server.c3
2 files changed, 9 insertions, 2 deletions
diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c
index 6ad95bd..ecf46ad 100644
--- a/src/server/gdb_server.c
+++ b/src/server/gdb_server.c
@@ -3113,7 +3113,13 @@ static int gdb_target_add_one(struct target *target)
if (!*end) {
if (parse_long(gdb_port_next, &portnumber) == ERROR_OK) {
free(gdb_port_next);
- gdb_port_next = alloc_printf("%d", portnumber+1);
+ if (portnumber) {
+ gdb_port_next = alloc_printf("%d", portnumber+1);
+ } else {
+ /* Don't increment if gdb_port is 0, since we're just
+ * trying to allocate an unused port. */
+ gdb_port_next = alloc_printf("0");
+ }
}
}
}
diff --git a/src/server/server.c b/src/server/server.c
index 65da53f..99bdc35 100644
--- a/src/server/server.c
+++ b/src/server/server.c
@@ -273,7 +273,8 @@ int add_service(char *name,
c->sin.sin_port = htons(c->portnumber);
if (bind(c->fd, (struct sockaddr *)&c->sin, sizeof(c->sin)) == -1) {
- LOG_ERROR("couldn't bind %s to socket: %s", name, strerror(errno));
+ LOG_ERROR("couldn't bind %s to socket on port %d: %s", name,
+ c->portnumber, strerror(errno));
close_socket(c->fd);
free_service(c);
return ERROR_FAIL;