* dwarf2-frame.c (dwarf2_frame_prev_register): Use gdb_byte.
[deliverable/binutils-gdb.git] / gdb / linux-thread-db.c
index 4c3c093e3693502fc961a607649c70530b72fa7b..9a7ead8b1c633cb46d80760c9e8eb72668648113 100644 (file)
@@ -962,7 +962,7 @@ thread_db_wait (ptid_t ptid, struct target_waitstatus *ourstatus)
 }
 
 static int
-thread_db_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
+thread_db_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len, int write,
                       struct mem_attrib *attrib, struct target_ops *target)
 {
   struct cleanup *old_chain = save_inferior_ptid ();
@@ -1230,40 +1230,27 @@ thread_db_pid_to_str (ptid_t ptid)
   return normal_pid_to_str (ptid);
 }
 
-/* Get the address of the thread local variable in OBJFILE which is
-   stored at OFFSET within the thread local storage for thread PTID.  */
+/* Get the address of the thread local variable in load module LM which
+   is stored at OFFSET within the thread local storage for thread PTID.  */
 
 static CORE_ADDR
-thread_db_get_thread_local_address (ptid_t ptid, struct objfile *objfile,
+thread_db_get_thread_local_address (ptid_t ptid,
+                                   CORE_ADDR lm,
                                    CORE_ADDR offset)
 {
   if (is_thread (ptid))
     {
       td_err_e err;
       void *address;
-      CORE_ADDR lm;
       struct thread_info *thread_info;
 
       /* glibc doesn't provide the needed interface.  */
       if (!td_thr_tls_get_addr_p)
-       {
-         struct exception e 
-           = { RETURN_ERROR, TLS_NO_LIBRARY_SUPPORT_ERROR, 0 };
-
-         throw_exception (e);
-       }
+       throw_error (TLS_NO_LIBRARY_SUPPORT_ERROR,
+                    _("No TLS library support"));
 
-      /* Get the address of the link map for this objfile.  */
-      lm = svr4_fetch_objfile_link_map (objfile);
-
-      /* Whoops, we couldn't find one. Bail out.  */
-      if (!lm)
-       {
-         struct exception e
-           = { RETURN_ERROR, TLS_LOAD_MODULE_NOT_FOUND_ERROR, 0 };
-
-         throw_exception (e);
-       }
+      /* Caller should have verified that lm != 0.  */
+      gdb_assert (lm != 0);
 
       /* Get info about the thread.  */
       thread_info = find_thread_pid (ptid);
@@ -1276,41 +1263,27 @@ thread_db_get_thread_local_address (ptid_t ptid, struct objfile *objfile,
 #ifdef THREAD_DB_HAS_TD_NOTALLOC
       /* The memory hasn't been allocated, yet.  */
       if (err == TD_NOTALLOC)
-       {
          /* Now, if libthread_db provided the initialization image's
             address, we *could* try to build a non-lvalue value from
             the initialization image.  */
-
-         struct exception e
-           = { RETURN_ERROR, TLS_NOT_ALLOCATED_YET_ERROR, 0 };
-
-         throw_exception (e);
-       }
+        throw_error (TLS_NOT_ALLOCATED_YET_ERROR,
+                     _("TLS not allocated yet"));
 #endif
 
       /* Something else went wrong.  */
       if (err != TD_OK)
-       {
-         struct exception e
-           = { RETURN_ERROR, TLS_GENERIC_ERROR, thread_db_err_str (err) };
-
-         throw_exception (e);
-       }
+        throw_error (TLS_GENERIC_ERROR,
+                     (("%s")), thread_db_err_str (err));
 
       /* Cast assuming host == target.  Joy.  */
       return (CORE_ADDR) address;
     }
 
   if (target_beneath->to_get_thread_local_address)
-    return target_beneath->to_get_thread_local_address (ptid, objfile, offset);
+    return target_beneath->to_get_thread_local_address (ptid, lm, offset);
   else
-    {
-      struct exception e
-       = { RETURN_ERROR, TLS_GENERIC_ERROR,
-           "TLS not supported on this target" };
-
-      throw_exception (e);
-    }
+    throw_error (TLS_GENERIC_ERROR,
+                _("TLS not supported on this target"));
 }
 
 static void
This page took 0.033331 seconds and 4 git commands to generate.