* sparc-nat.c: Include "inf-ptrace.h".
[binutils-gdb.git] / gdb / thread-db.c
index 50ae74712c33680829e42349b029c736b47af678..65d9fd51b89f93c7183fde7623b2cafb655db520 100644 (file)
@@ -63,10 +63,6 @@ static void (*target_new_objfile_chain) (struct objfile * objfile);
 /* Non-zero if we're using this module's target vector.  */
 static int using_thread_db;
 
-/* Non-zero if we have to keep this module's target vector active
-   across re-runs.  */
-static int keep_thread_db;
-
 /* Non-zero if we have determined the signals used by the threads
    library.  */
 static int thread_signals;
@@ -673,8 +669,6 @@ thread_db_new_objfile (struct objfile *objfile)
          using_thread_db = 0;
        }
 
-      keep_thread_db = 0;
-
       goto quit;
     }
 
@@ -703,26 +697,8 @@ thread_db_new_objfile (struct objfile *objfile)
       push_target (&thread_db_ops);
       using_thread_db = 1;
 
-      /* If the thread library was detected in the main symbol file
-         itself, we assume that the program was statically linked
-         against the thread library and well have to keep this
-         module's target vector activated until forever...  Well, at
-         least until all symbols have been discarded anyway (see
-         above).  */
-      if (objfile == symfile_objfile)
-       {
-         gdb_assert (proc_handle.pid == 0);
-         keep_thread_db = 1;
-       }
-
-      /* We can only poke around if there actually is a child process.
-         If there is no child process alive, postpone the steps below
-         until one has been created.  */
-      if (proc_handle.pid != 0)
-       {
-         enable_thread_event_reporting ();
-         thread_db_find_new_threads ();
-       }
+      enable_thread_event_reporting ();
+      thread_db_find_new_threads ();
       break;
 
     default:
@@ -1011,8 +987,8 @@ thread_db_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
     }
 
   xfer =
-    target_beneath->to_xfer_memory (memaddr, myaddr, len, write, attrib,
-                                   target);
+    target_beneath->deprecated_xfer_memory (memaddr, myaddr, len, write,
+                                           attrib, target);
 
   do_cleanups (old_chain);
   return xfer;
@@ -1077,7 +1053,7 @@ thread_db_store_registers (int regno)
 
       deprecated_read_register_gen (regno, raw);
       thread_db_fetch_registers (-1);
-      supply_register (regno, raw);
+      regcache_raw_supply (current_regcache, regno, raw);
     }
 
   fill_gregset ((gdb_gregset_t *) gregset, -1);
@@ -1106,12 +1082,8 @@ static void
 thread_db_create_inferior (char *exec_file, char *allargs, char **env,
                           int from_tty)
 {
-  if (!keep_thread_db)
-    {
-      unpush_target (&thread_db_ops);
-      using_thread_db = 0;
-    }
-
+  unpush_target (&thread_db_ops);
+  using_thread_db = 0;
   target_beneath->to_create_inferior (exec_file, allargs, env, from_tty);
 }
 
@@ -1141,17 +1113,9 @@ thread_db_mourn_inferior (void)
 
   target_beneath->to_mourn_inferior ();
 
-  /* Detach thread_db target ops if not dealing with a statically
-     linked threaded program.  This allows a corefile to be debugged
-     after finishing debugging of a threaded program.  At present,
-     debugging a statically-linked threaded program is broken, but
-     the check is added below in the event that it is fixed in the
-     future.  */
-  if (!keep_thread_db)
-    {
-      unpush_target (&thread_db_ops);
-      using_thread_db = 0;
-    }
+  /* Detach thread_db target ops.  */
+  unpush_target (&thread_db_ops);
+  using_thread_db = 0;
 }
 
 static int
@@ -1375,7 +1339,7 @@ init_thread_db_ops (void)
   thread_db_ops.to_wait = thread_db_wait;
   thread_db_ops.to_fetch_registers = thread_db_fetch_registers;
   thread_db_ops.to_store_registers = thread_db_store_registers;
-  thread_db_ops.to_xfer_memory = thread_db_xfer_memory;
+  thread_db_ops.deprecated_xfer_memory = thread_db_xfer_memory;
   thread_db_ops.to_kill = thread_db_kill;
   thread_db_ops.to_create_inferior = thread_db_create_inferior;
   thread_db_ops.to_post_startup_inferior = thread_db_post_startup_inferior;