From 3099858c68fd3a5f9960daea429198c0fc5a0f10 Mon Sep 17 00:00:00 2001 From: sb-sf Date: Mon, 5 Jul 2010 14:06:34 +0100 Subject: [PATCH] gdbserver: incorrect memory map for multiple targets (bug #24) The gdb server incorrectly reports the memory map if we have multiple targets with multiple flash banks. Signed-off-by: Spencer Oliver --- src/server/gdb_server.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index e97839d2..1d1d8363 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -1682,6 +1682,7 @@ static int gdb_memory_map(struct connection *connection, char *separator; uint32_t ram_start = 0; int i; + int target_flash_banks = 0; /* skip command character */ packet += 23; @@ -1708,10 +1709,11 @@ static int gdb_memory_map(struct connection *connection, gdb_error(connection, retval); return retval; } - banks[i] = p; + if(p->target == target) + banks[target_flash_banks++] = p; } - qsort(banks, flash_get_bank_count(), sizeof(struct flash_bank *), + qsort(banks, target_flash_banks, sizeof(struct flash_bank *), compare_bank); for (i = 0; i < flash_get_bank_count(); i++) { -- 2.39.5