gdb_server: check target before executing event callback
As debugging multi-targets, every target has its own gdb connection. If there are two connections, gdb_target_callback_event_handler will be registered twice. Everytime event occurs, the registered callback will be executed twice. If both targets are running, as user issues ctrl-c in one gdb client, both connections will send "stop reply" to GDB clients even TARGET_EVENT_GDB_HALT is caused by one of them. The commit fix above problem as debugging multi-targets. Change-Id: I1e12d4846927d7dcf1e3bb9aeb1affabc80df813 Signed-off-by: Hsiangkai Wang <hsiangkai@gmail.com> Reviewed-on: http://openocd.zylin.com/1501 Tested-by: jenkins Reviewed-by: Sergey Borshch <sb-sf@users.sourceforge.net> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>__archive__
parent
399561eafa
commit
0961987a19
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue