darwin-nat: disable sstep cache.
authorTristan Gingold <gingold@adacore.com>
Wed, 8 Jul 2015 10:18:32 +0000 (12:18 +0200)
committerTristan Gingold <gingold@adacore.com>
Mon, 23 Nov 2015 14:29:57 +0000 (15:29 +0100)
Was not reliable after inferior call.

gdb/ChangeLog
gdb/darwin-nat.c

index 6a8592e..605eb39 100644 (file)
@@ -1,5 +1,11 @@
 2015-11-23  Tristan Gingold  <gingold@adacore.com>
 
+       * darwin-nat.c (darwin_ptrace): Avoid a cast.
+       (darwin_resume_thread): Ditto.  And always set or reset
+       single step.
+
+2015-11-23  Tristan Gingold  <gingold@adacore.com>
+
        * darwin-nat.c (darwin_read_dyld_info): Write address in
        big-endian order.
        * solib-darwin.c (darwin_validate_exec_header): New function,
index cb2b08e..457ba89 100644 (file)
@@ -245,12 +245,12 @@ unparse_exception_type (unsigned int i)
 
 static int
 darwin_ptrace (const char *name,
-              int request, int pid, PTRACE_TYPE_ARG3 arg3, int arg4)
+              int request, int pid, caddr_t arg3, int arg4)
 {
   int ret;
 
   errno = 0;
-  ret = ptrace (request, pid, (caddr_t) arg3, arg4);
+  ret = ptrace (request, pid, arg3, arg4);
   if (ret == -1 && errno == 0)
     ret = 0;
 
@@ -728,7 +728,7 @@ darwin_resume_thread (struct inferior *inf, darwin_thread_t *thread,
        {
          /* Either deliver a new signal or cancel the signal received.  */
          res = PTRACE (PT_THUPDATE, inf->pid,
-                       (void *)(uintptr_t)thread->gdb_port, nsignal);
+                       (caddr_t)thread->gdb_port, nsignal);
          if (res < 0)
            inferior_debug (1, _("ptrace THUP: res=%d\n"), res);
        }
@@ -743,13 +743,10 @@ darwin_resume_thread (struct inferior *inf, darwin_thread_t *thread,
        }
 
       /* Set or reset single step.  */
-      if (step != thread->single_step)
-       {
-         inferior_debug (4, _("darwin_set_sstep (thread=0x%x, enable=%d)\n"),
-                         thread->gdb_port, step);
-         darwin_set_sstep (thread->gdb_port, step);
-         thread->single_step = step;
-       }
+      inferior_debug (4, _("darwin_set_sstep (thread=0x%x, enable=%d)\n"),
+                     thread->gdb_port, step);
+      darwin_set_sstep (thread->gdb_port, step);
+      thread->single_step = step;
 
       darwin_send_reply (inf, thread);
       thread->msg_state = DARWIN_RUNNING;