gdb: fix multi core gdb issue
[fw/openocd] / src / server / gdb_server.c
index 5eb6cac4da70ab5fb37b7f331d5bca80aaa91291..cbc2b401c37596cd8134ea8b313dd2acf9d1ada9 100644 (file)
@@ -1061,6 +1061,8 @@ static int gdb_get_registers_packet(struct connection *connection,
                reg_packet_size += reg_list[i]->size;
        }
 
+       assert(reg_packet_size > 0);
+
        reg_packet = malloc(DIV_ROUND_UP(reg_packet_size, 8) * 2);
        reg_packet_p = reg_packet;
 
@@ -1739,7 +1741,7 @@ static int gdb_memory_map(struct connection *connection,
        qsort(banks, target_flash_banks, sizeof(struct flash_bank *),
                        compare_bank);
 
-       for (i = 0; i < flash_get_bank_count(); i++) {
+       for (i = 0; i < target_flash_banks; i++) {
                int j;
                unsigned sector_size = 0;
                uint32_t start;
@@ -2449,7 +2451,7 @@ static int gdb_target_start(struct target *target, const char *port)
                {
                        curr = head->target;
                        if (curr != target) curr->gdb_service = gdb_service;
-                       head = head->next;      
+                       head = head->next;
                }
        }
        return ret;
@@ -2460,7 +2462,7 @@ static int gdb_target_add_one(struct target *target)
        /*  one gdb instance per smp list */
        if ((target->smp) && (target->gdb_service)) return ERROR_OK;
        int retval = gdb_target_start(target, gdb_port_next);
-       if (retval == ERROR_OK) 
+       if (retval == ERROR_OK)
        {
                long portnumber;
                /* If we can parse the port number