From aa14fb50785c8ac8be5fbb148d7cdd88fcf8f896 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Wed, 8 Jul 2015 12:18:32 +0200 Subject: [PATCH] darwin-nat: disable sstep cache. Was not reliable after inferior call. --- gdb/ChangeLog | 6 ++++++ gdb/darwin-nat.c | 17 +++++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6a8592e0bb6..605eb39972e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2015-11-23 Tristan Gingold + + * darwin-nat.c (darwin_ptrace): Avoid a cast. + (darwin_resume_thread): Ditto. And always set or reset + single step. + 2015-11-23 Tristan Gingold * darwin-nat.c (darwin_read_dyld_info): Write address in diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c index cb2b08eaa80..457ba89e765 100644 --- a/gdb/darwin-nat.c +++ b/gdb/darwin-nat.c @@ -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; -- 2.30.2