X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fserver%2Fgdb_server.c;h=a9681c79716ea36f6c91d80b8ce0841e6f4c1ab7;hb=d14058db0aee78de9a9bc5bddeafe7844ac01587;hp=c4ad91cfab5743f9e30f9fe90256d6031da2ad69;hpb=399561eafa747e71202d00985206b65868142afb;p=fw%2Fopenocd diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index c4ad91cfa..a9681c797 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -864,6 +864,10 @@ static int gdb_target_callback_event_handler(struct target *target, { int retval; struct connection *connection = priv; + struct gdb_service *gdb_service = connection->service->priv; + + if (gdb_service->target != target) + return ERROR_OK; switch (event) { case TARGET_EVENT_GDB_HALT: @@ -902,7 +906,7 @@ static int gdb_new_connection(struct connection *connection) gdb_connection->closed = 0; gdb_connection->busy = 0; gdb_connection->noack_mode = 0; - gdb_connection->sync = true; + gdb_connection->sync = false; gdb_connection->mem_write_error = false; gdb_connection->attached = true; @@ -1824,6 +1828,8 @@ static int gdb_memory_map(struct connection *connection, static const char *gdb_get_reg_type_name(enum reg_type type) { switch (type) { + case REG_TYPE_INT: + return "int"; case REG_TYPE_INT8: return "int8"; case REG_TYPE_INT16: @@ -1848,6 +1854,8 @@ static const char *gdb_get_reg_type_name(enum reg_type type) return "code_ptr"; case REG_TYPE_DATA_PTR: return "data_ptr"; + case REG_TYPE_FLOAT: + return "float"; case REG_TYPE_IEEE_SINGLE: return "ieee_single"; case REG_TYPE_IEEE_DOUBLE: @@ -2932,16 +2940,16 @@ COMMAND_HANDLER(handle_gdb_save_tdesc_command) int retval = fileio_open(&fileio, tdesc_filename, FILEIO_WRITE, FILEIO_TEXT); - free(tdesc_filename); - if (retval != ERROR_OK) { LOG_WARNING("Can't open %s for writing", tdesc_filename); + free(tdesc_filename); return ERROR_FAIL; } retval = fileio_write(&fileio, tdesc_length, tdesc, &size_written); fileio_close(&fileio); + free(tdesc_filename); if (retval != ERROR_OK) { LOG_WARNING("Error while writing the tdesc file");