gas/
[deliverable/binutils-gdb.git] / gdb / darwin-nat.c
index 340ef35654c8857d6a1bc895635f13240d50f222..8c20bd905a02d415bc693ceb2d651a0ceb421ab5 100644 (file)
@@ -86,14 +86,11 @@ extern boolean_t exc_server (mach_msg_header_t *in, mach_msg_header_t *out);
 
 static void darwin_stop (ptid_t);
 
-static void darwin_resume (ptid_t ptid, int step,
-                          enum target_signal signal);
-
 static void darwin_mourn_inferior (struct target_ops *ops);
 
 static int darwin_lookup_task (char *args, task_t * ptask, int *ppid);
 
-static void darwin_kill_inferior (void);
+static void darwin_kill_inferior (struct target_ops *ops);
 
 static void darwin_ptrace_me (void);
 
@@ -104,8 +101,6 @@ static void darwin_create_inferior (struct target_ops *ops, char *exec_file,
 
 static void darwin_files_info (struct target_ops *ops);
 
-static int darwin_thread_alive (ptid_t tpid);
-
 /* Current inferior.  */
 darwin_inferior *darwin_inf = NULL;
 
@@ -247,7 +242,7 @@ darwin_ptrace (const char *name,
 
   inferior_debug (2, _("ptrace (%s, %d, 0x%x, %d): %d (%s)\n"),
                   name, pid, arg3, arg4, ret,
-                  (ret != 0) ? strerror (errno) : _("no error"));
+                  (ret != 0) ? safe_strerror (errno) : _("no error"));
   return ret;
 }
 
@@ -342,7 +337,8 @@ darwin_stop (ptid_t t)
 }
 
 static void
-darwin_resume (ptid_t ptid, int step, enum target_signal signal)
+darwin_resume (struct target_ops *ops,
+              ptid_t ptid, int step, enum target_signal signal)
 {
   struct target_waitstatus status;
   int pid;
@@ -371,7 +367,7 @@ darwin_resume (ptid_t ptid, int step, enum target_signal signal)
            {
              int nsignal = target_signal_to_host (signal);
              res = PTRACE (PT_THUPDATE, pid,
-                                  (void *)exc_msg.thread_port, nsignal);
+                           (void *)(uintptr_t)exc_msg.thread_port, nsignal);
              if (res < 0)
                printf_unfiltered (_("ptrace THUP: res=%d\n"), res);
            }
@@ -480,7 +476,7 @@ catch_exception_raise (mach_port_t port,
 
 static ptid_t
 darwin_wait (struct target_ops *ops,
-            ptid_t ptid, struct target_waitstatus *status)
+            ptid_t ptid, struct target_waitstatus *status, int options)
 {
   kern_return_t kret;
   mach_msg_header_t *hdr = &msgin.hdr;
@@ -672,7 +668,7 @@ darwin_mourn_inferior (struct target_ops *ops)
 }
 
 static void
-darwin_stop_inferior (darwin_inferior *inf)
+darwin_stop_inferior (struct target_ops *ops, darwin_inferior *inf)
 {
   struct target_waitstatus wstatus;
   ptid_t ptid;
@@ -686,18 +682,18 @@ darwin_stop_inferior (darwin_inferior *inf)
   MACH_CHECK_ERROR (kret);
 
   if (msg_state == GOT_MESSAGE)
-    darwin_resume (inferior_ptid, 0, 0);
+    darwin_resume (darwin_ops, inferior_ptid, 0, 0);
 
   res = kill (inf->pid, SIGSTOP);
   if (res != 0)
-    warning (_("cannot kill: %s\n"), strerror (errno));
+    warning (_("cannot kill: %s\n"), safe_strerror (errno));
 
-  ptid = darwin_wait (inferior_ptid, &wstatus);
+  ptid = darwin_wait (ops, inferior_ptid, &wstatus);
   gdb_assert (wstatus.kind = TARGET_WAITKIND_STOPPED);
 }
 
 static void
-darwin_kill_inferior (void)
+darwin_kill_inferior (struct target_ops *ops)
 {
   struct target_waitstatus wstatus;
   ptid_t ptid;
@@ -710,7 +706,7 @@ darwin_kill_inferior (void)
   if (ptid_equal (inferior_ptid, null_ptid))
     return;
 
-  darwin_stop_inferior (darwin_inf);
+  darwin_stop_inferior (ops, darwin_inf);
 
   res = PTRACE (PT_KILL, darwin_inf->pid, 0, 0);
   gdb_assert (res == 0);
@@ -718,13 +714,13 @@ darwin_kill_inferior (void)
   if (msg_state == GOT_MESSAGE)
     {
       exc_msg.ex_type = 0;
-      darwin_resume (inferior_ptid, 0, 0);
+      darwin_resume (ops, inferior_ptid, 0, 0);
     }
 
   kret = task_resume (darwin_inf->task);
   MACH_CHECK_ERROR (kret);
 
-  ptid = darwin_wait (inferior_ptid, &wstatus);
+  ptid = darwin_wait (ops, inferior_ptid, &wstatus);
 
   /* This double wait seems required...  */
   res = waitpid (darwin_inf->pid, &status, 0);
@@ -968,7 +964,7 @@ darwin_attach (struct target_ops *ops, char *args, int from_tty)
   res = PTRACE (PT_ATTACHEXC, pid, 0, 0);
   if (res != 0)
     error (_("Unable to attach to process-id %d: %s (%d)"),
-          pid, strerror (errno), errno);
+          pid, safe_strerror (errno), errno);
 
   inf = add_inferior (pid);
   inf->attach_flag = 1;
@@ -1015,7 +1011,7 @@ darwin_detach (struct target_ops *ops, char *args, int from_tty)
       gdb_flush (gdb_stdout);
     }
 
-  darwin_stop_inferior (darwin_inf);
+  darwin_stop_inferior (ops, darwin_inf);
 
   kret = darwin_restore_exception_ports (darwin_inf);
   MACH_CHECK_ERROR (kret);
@@ -1023,7 +1019,7 @@ darwin_detach (struct target_ops *ops, char *args, int from_tty)
   if (msg_state == GOT_MESSAGE)
     {
       exc_msg.ex_type = 0;
-      darwin_resume (inferior_ptid, 0, 0);
+      darwin_resume (ops, inferior_ptid, 0, 0);
     }
 
   kret = task_resume (darwin_inf->task);
@@ -1032,7 +1028,7 @@ darwin_detach (struct target_ops *ops, char *args, int from_tty)
   res = PTRACE (PT_DETACH, darwin_inf->pid, 0, 0);
   if (res != 0)
     printf_unfiltered (_("Unable to detach from process-id %d: %s (%d)"),
-                      darwin_inf->pid, strerror (errno), errno);
+                      darwin_inf->pid, safe_strerror (errno), errno);
 
   msg_state = NO_MESSAGE;
 
@@ -1058,7 +1054,7 @@ darwin_pid_to_str (struct target_ops *ops, ptid_t ptid)
 }
 
 static int
-darwin_thread_alive (ptid_t ptid)
+darwin_thread_alive (struct target_ops *ops, ptid_t ptid)
 {
   return 1;
 }
@@ -1201,8 +1197,10 @@ darwin_xfer_partial (struct target_ops *ops,
                     gdb_byte *readbuf, const gdb_byte *writebuf,
                     ULONGEST offset, LONGEST len)
 {
-  inferior_debug (8, _("darwin_xfer_partial(%s, %d, rbuf=%p, wbuf=%p)\n"),
-                 core_addr_to_string (offset), (int)len, readbuf, writebuf);
+  inferior_debug (8, _("darwin_xfer_partial(%s, %d, rbuf=%s, wbuf=%s)\n"),
+                 core_addr_to_string (offset), (int)len, 
+                 host_address_to_string (readbuf),
+                 host_address_to_string (writebuf));
 
   if (object != TARGET_OBJECT_MEMORY)
     return -1;
This page took 0.026462 seconds and 4 git commands to generate.