This is the mail archive of the
mailing list for the GDB project.
[PATCH] Fix mi-detach.exp on native-gdbserver
- From: Simon Marchi <simon dot marchi at ericsson dot com>
- To: <gdb-patches at sourceware dot org>
- Cc: Simon Marchi <simon dot marchi at ericsson dot com>
- Date: Wed, 2 Sep 2015 17:24:38 -0400
- Subject: [PATCH] Fix mi-detach.exp on native-gdbserver
- Authentication-results: sourceware.org; auth=none
The =thread-exited event did not appear when detaching from a process
with "target remote".
When mourning an inferior, target remote takes a different path than
target extended_remote. target remote calls unpush_target first which
calls remote_close in order to close the "remote" target. remote_close
calls discard_all_inferiors, which exits all inferiors with
exit_inferior_silent. Because it's the _silent version, we don't see
the MI event.
extended_remote_mourn calls generic_mourn_inferior, which calls
exit_inferior. Since it's the non-silent version, we see the MI event.
When changing discard_all_inferiors to call exit_inferior instead of
exit_inferior_silent, the MI event appears. Since remote_mourn is the
only place where discard_all_inferiors is used, it should be an otherwise
Regression-tested on Ubuntu 14.04, with native and native-gdbserver.
* inferior.c (discard_all_inferiors): Call exit_inferior instead
gdb/inferior.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gdb/inferior.c b/gdb/inferior.c
index 04e9a28..6ca18b8 100644
@@ -315,7 +315,7 @@ discard_all_inferiors (void)
for (inf = inferior_list; inf; inf = inf->next)
if (inf->pid != 0)
- exit_inferior_silent (inf->pid);
+ exit_inferior (inf->pid);