* inflow.c (kill_command): If the target claims there is still
authorPedro Alves <palves@redhat.com>
Mon, 27 Oct 2008 22:37:20 +0000 (22:37 +0000)
committerPedro Alves <palves@redhat.com>
Mon, 27 Oct 2008 22:37:20 +0000 (22:37 +0000)
execution, don't clear the thread list.

gdb/ChangeLog
gdb/inflow.c

index f55262c..48d6781 100644 (file)
@@ -1,5 +1,10 @@
 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.
+
+2008-10-27  Pedro Alves  <pedro@codesourcery.com>
+
        * cp-name-parser.y: Include defs.h instead of config.h.
        (parse_escape): Rename to ...
        (cp_parse_escape): ... this.
index 2ba2a34..e82514e 100644 (file)
@@ -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)
+  /* If the current target interface claims there's still execution,
+     then don't mess with threads of other processes.  */
+  if (!target_has_execution)
     {
-      printf_filtered (_("In %s,\n"), target_longname);
-      print_stack_frame (get_selected_frame (NULL), 1, SRC_AND_LOC);
+      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 ();
 }