gdb_server: only trigger once the event gdb-detach at gdb quit
When GDB quits (e.g. with "quit" command) we first execute gdb_detach() to reply "OK" then, at GDB disconnect (either TCP or pipe connection type), we execute gdb_connection_closed(). In case GDB is killed or it crashes, OpenOCD only executes the latter when detects the disconnection. Both gdb_detach() and gdb_connection_closed() trigger the event TARGET_EVENT_GDB_DETACH thus getting it triggered twice on clean GDB quit. Do not trigger the event TARGET_EVENT_GDB_DETACH in gdb_detach() and let only gdb_connection_closed() to handle it. Change-Id: Iacf035c855b8b3e2239c1c0e259c279688b418ee Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: http://openocd.zylin.com/4585 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
This commit is contained in:
parent
ce28a0c8c8
commit
421e75722d
|
@ -3016,9 +3016,12 @@ static int gdb_v_packet(struct connection *connection,
|
|||
|
||||
static int gdb_detach(struct connection *connection)
|
||||
{
|
||||
target_call_event_callbacks(get_target_from_connection(connection),
|
||||
TARGET_EVENT_GDB_DETACH);
|
||||
|
||||
/*
|
||||
* Only reply "OK" to GDB
|
||||
* it will close the connection and this will trigger a call to
|
||||
* gdb_connection_closed() that will in turn trigger the event
|
||||
* TARGET_EVENT_GDB_DETACH
|
||||
*/
|
||||
return gdb_put_packet(connection, "OK", 2);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue