From: sb-sf Date: Mon, 5 Jul 2010 13:06:34 +0000 (+0100) Subject: gdbserver: incorrect memory map for multiple targets (bug #24) X-Git-Tag: v0.5.0-rc1~533 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=3099858c68fd3a5f9960daea429198c0fc5a0f10;hp=1e0f89841575de2b8b6313825ec8edd8bc7910a0 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 --- diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index e97839d289..1d1d836385 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++) {