This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Allow attaching to multiple processes
- From: Pedro Alves <pedro at codesourcery dot com>
- To: gdb-patches at sourceware dot org
- Date: Mon, 27 Oct 2008 22:37:59 +0000
- Subject: Re: Allow attaching to multiple processes
- References: <200810271244.06188.pedro@codesourcery.com>
On Monday 27 October 2008 12:44:05, Pedro Alves wrote:
> Now that the remote target supports debugging multiple inferiors
> simultaneously, we need to allow/expose that to the command level. This
> patch allows "attach"ing to multiple processes. ("run"ning will come later).
>
> Not much rocket science here --- the comments/code should be
> self-explanatory.
"kill" requires a similar treatment, like attached. Checked in.
--
Pedro Alves
2008-10-27 Pedro Alves <pedro@codesourcery.com>
* inflow.c (kill_command): If the target claims there is still
execution, don't clear the thread list.
---
gdb/inflow.c | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
Index: src/gdb/inflow.c
===================================================================
--- src.orig/gdb/inflow.c 2008-10-27 20:38:52.000000000 +0000
+++ src/gdb/inflow.c 2008-10-27 22:31:15.000000000 +0000
@@ -601,14 +601,19 @@ kill_command (char *arg, int from_tty)
error (_("Not confirmed."));
target_kill ();
- init_thread_list (); /* Destroy thread info */
-
- /* Killing off the inferior can leave us with a core file. If so,
- print the state we are left in. */
- if (target_has_stack)
- {
- printf_filtered (_("In %s,\n"), target_longname);
- print_stack_frame (get_selected_frame (NULL), 1, SRC_AND_LOC);
+ /* If the current target interface claims there's still execution,
+ then don't mess with threads of other processes. */
+ if (!target_has_execution)
+ {
+ init_thread_list (); /* Destroy thread info */
+
+ /* Killing off the inferior can leave us with a core file. If
+ so, print the state we are left in. */
+ if (target_has_stack)
+ {
+ printf_filtered (_("In %s,\n"), target_longname);
+ print_stack_frame (get_selected_frame (NULL), 1, SRC_AND_LOC);
+ }
}
bfd_cache_close_all ();
}