From: oharboe Date: Mon, 27 Jul 2009 18:56:43 +0000 (+0000) Subject: Fix NPE in GDB_EVENT_END as logforwarding was not disabled early enough X-Git-Tag: v0.3.0-rc0~381 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=5a824c934f32b9b5b0aaf885f593470babaf5b92;p=openocd Fix NPE in GDB_EVENT_END as logforwarding was not disabled early enough git-svn-id: svn://svn.berlios.de/openocd/trunk@2570 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index 9151caa8..48144f26 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -816,6 +816,11 @@ int gdb_connection_closed(connection_t *connection) gdb_service_t *gdb_service = connection->service->priv; gdb_connection_t *gdb_connection = connection->priv; + /* we're done forwarding messages. Tear down callback before + * cleaning up connection. + */ + log_remove_callback(gdb_log_callback, connection); + gdb_actual_connections--; LOG_DEBUG("GDB Close, Target: %s, state: %s, gdb_actual_connections=%d", gdb_service->target->cmd_name, @@ -843,9 +848,10 @@ int gdb_connection_closed(connection_t *connection) LOG_ERROR("BUG: connection->priv == NULL"); } + target_unregister_event_callback(gdb_target_callback_event_handler, connection); + target_call_event_callbacks(gdb_service->target, TARGET_EVENT_GDB_END); - log_remove_callback(gdb_log_callback, connection); target_call_event_callbacks(gdb_service->target, TARGET_EVENT_GDB_DETACH);