* aix-thread.c (PD_ERROR, CALL_BASE): Delete.
authorKevin Buettner <kevinb@redhat.com>
Mon, 15 Jul 2002 23:33:09 +0000 (23:33 +0000)
committerKevin Buettner <kevinb@redhat.com>
Mon, 15 Jul 2002 23:33:09 +0000 (23:33 +0000)
(ops_resume, ops_wait, fetch_regs_lib, store_regs_lib)
(ops_xfer_memory, ops_kill): Don't use PD_ERROR or CALL_BASE
macros.

gdb/ChangeLog
gdb/aix-thread.c

index 3a42c2e83b14886596056867ee97515919ba01ad..373ae956c22fe0f64f9f88ece45e59d3473284c7 100644 (file)
@@ -1,3 +1,10 @@
+2002-07-15  Kevin Buettner  <kevinb@redhat.com>
+
+       * aix-thread.c (PD_ERROR, CALL_BASE): Delete.
+       (ops_resume, ops_wait, fetch_regs_lib, store_regs_lib)
+       (ops_xfer_memory, ops_kill): Don't use PD_ERROR or CALL_BASE
+       macros.
+
 2002-07-15  Kevin Buettner  <kevinb@redhat.com>
 
        * aix-thread.c (ptrace_check): Eliminate goto.
index 1eb366ef65f4eab284ef41d2d5862ee04c8e8650..62aa25c51657b10ec00de8ff80fea854f2deb3e6 100644 (file)
@@ -81,12 +81,6 @@ static int debug_aix_thread;
 /* Build and lwp ptid.  */
 #define BUILD_LWP(LWP, PID) MERGEPID (PID, LWP)
 
-/* Call error() with a message indicating that libpthdebug FUNC failed with
-   STATUS. */
-
-#define PD_ERROR(func, status) \
-  error ("aix-thread: %s returned %s", func, pd_status2str (status))
-
 /* pthdb_user_t value that we pass to pthdb functions.  0 causes
    PTHDB_BAD_USER errors, so use 1. */
 
@@ -97,17 +91,6 @@ static int debug_aix_thread;
 #define PDC_SUCCESS    PTHDB_SUCCESS
 #define PDC_FAILURE    PTHDB_CALLBACK
 
-/* Convert composite process/thread inferior_ptid to a process id, evaluate
-   base_ops function CALL, and then restore inferior_ptid. */
-
-#define CALL_BASE(call)                                        \
-  do {                                                 \
-    struct cleanup *cleanup = save_inferior_ptid ();   \
-    inferior_ptid = pid_to_ptid (PIDGET (inferior_ptid)); \
-    call;                                              \
-    do_cleanups (cleanup);                             \
-  } while (0)
-
 /* Private data attached to each element in GDB's thread list. */
 
 struct private_thread_info {
@@ -934,7 +917,12 @@ ops_resume (ptid_t ptid, int step, enum target_signal sig)
   pthdb_tid_t tid[2];
 
   if (!PD_TID (ptid))
-    CALL_BASE (base_ops.to_resume (ptid, step, sig));
+    {
+      struct cleanup *cleanup = save_inferior_ptid ();
+      inferior_ptid = pid_to_ptid (PIDGET (inferior_ptid));
+      base_ops.to_resume (ptid, step, sig);
+      do_cleanups (cleanup);
+    }
   else
     {
       thread = find_thread_pid (ptid);
@@ -960,8 +948,14 @@ ops_resume (ptid_t ptid, int step, enum target_signal sig)
 static ptid_t
 ops_wait (ptid_t ptid, struct target_waitstatus *status)
 {
+  struct cleanup *cleanup = save_inferior_ptid ();
+
   pid_to_prc (&ptid);
-  CALL_BASE (ptid = base_ops.to_wait (ptid, status));
+
+  inferior_ptid = pid_to_ptid (PIDGET (inferior_ptid));
+  ptid = base_ops.to_wait (ptid, status);
+  do_cleanups (cleanup);
+
   if (PIDGET (ptid) == -1)
     return pid_to_ptid (-1);
 
@@ -1051,7 +1045,8 @@ fetch_regs_lib (pthdb_pthread_t pdtid)
     fprintf_unfiltered (gdb_stdlog, "fetch_regs_lib %lx\n", (long)pdtid);
   status = pthdb_pthread_context (pd_session, pdtid, &ctx);
   if (status != PTHDB_SUCCESS)
-    PD_ERROR ("fetch_registers: pthdb_pthread_context", status);
+    error ("aix-thread: fetch_registers: pthdb_pthread_context returned %s",
+           pd_status2str (status));
 
   /* General-purpose registers. */
 
@@ -1209,7 +1204,8 @@ store_regs_lib (pthdb_pthread_t pdtid)
   /* Retrieve the thread's current context for its non-register values. */
   status = pthdb_pthread_context (pd_session, pdtid, &ctx);
   if (status != PTHDB_SUCCESS)
-    PD_ERROR ("store_registers: pthdb_pthread_context", status);
+    error ("aix-thread: store_registers: pthdb_pthread_context returned %s",
+           pd_status2str (status));
 
   /* General-purpose registers. */
 
@@ -1227,7 +1223,8 @@ store_regs_lib (pthdb_pthread_t pdtid)
 
   status = pthdb_pthread_setcontext (pd_session, pdtid, &ctx);
   if (status != PTHDB_SUCCESS)
-    PD_ERROR ("store_registers: pthdb_pthread_setcontext", status);
+    error ("aix-thread: store_registers: pthdb_pthread_setcontext returned %s",
+           pd_status2str (status));
 }
 
 /* Store register REGNO if != -1 or all registers otherwise into kernel
@@ -1340,9 +1337,12 @@ ops_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
                 struct target_ops *target)
 {
   int n;
+  struct cleanup *cleanup = save_inferior_ptid ();
+
+  inferior_ptid = pid_to_ptid (PIDGET (inferior_ptid));
+  n = base_ops.to_xfer_memory (memaddr, myaddr, len, write, attrib, &base_ops);
+  do_cleanups (cleanup);
 
-  CALL_BASE (n = base_ops.to_xfer_memory (memaddr, myaddr, len, write,
-                                         attrib, &base_ops));
   return n;
 }
 
@@ -1351,7 +1351,11 @@ ops_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
 static void
 ops_kill (void)
 {
-  CALL_BASE (base_ops.to_kill ());
+  struct cleanup *cleanup = save_inferior_ptid ();
+
+  inferior_ptid = pid_to_ptid (PIDGET (inferior_ptid));
+  base_ops.to_kill ();
+  do_cleanups (cleanup);
 }
 
 /* Clean up after the inferior exits. */