aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/gdb_server.c8
-rw-r--r--src/server/server.c6
2 files changed, 13 insertions, 1 deletions
diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c
index fc0868b0..b2d13d72 100644
--- a/src/server/gdb_server.c
+++ b/src/server/gdb_server.c
@@ -3090,7 +3090,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 = strdup("0");
+ }
}
}
}
diff --git a/src/server/server.c b/src/server/server.c
index 517d62a7..1e52e979 100644
--- a/src/server/server.c
+++ b/src/server/server.c
@@ -298,6 +298,12 @@ int add_service(char *name,
free_service(c);
return ERROR_FAIL;
}
+
+ struct sockaddr_in addr_in;
+ socklen_t addr_in_size = sizeof(addr_in);
+ getsockname(c->fd, (struct sockaddr *)&addr_in, &addr_in_size);
+ LOG_INFO("Listening on port %hu for %s connections",
+ ntohs(addr_in.sin_port), name);
} else if (c->type == CONNECTION_STDINOUT) {
c->fd = fileno(stdin);