From dd23e30c68b50be0fc628b2cc1c587715c11bfdf Mon Sep 17 00:00:00 2001 From: Rhys Kidd Date: Sun, 12 Jul 2015 13:25:55 +0000 Subject: [PATCH] OS X 10.11: Tweak magic offset, which was amended prior to xnu-3247.1.36~7 (DP3). Also align some debug output text between x86 and amd64. bz#348909. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15411 --- coregrind/m_syswrap/syswrap-amd64-darwin.c | 8 +++++--- coregrind/m_syswrap/syswrap-x86-darwin.c | 4 +++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/coregrind/m_syswrap/syswrap-amd64-darwin.c b/coregrind/m_syswrap/syswrap-amd64-darwin.c index d4e1cb5e28..d836d81aa5 100644 --- a/coregrind/m_syswrap/syswrap-amd64-darwin.c +++ b/coregrind/m_syswrap/syswrap-amd64-darwin.c @@ -479,8 +479,10 @@ void wqthread_hijack(Addr self, Addr kport, Addr stackaddr, Addr workitem, UWord magic_delta = 0; # elif DARWIN_VERS == DARWIN_10_7 || DARWIN_VERS == DARWIN_10_8 UWord magic_delta = 0x60; -# elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10 || DARWIN_VERS == DARWIN_10_11 +# elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10 UWord magic_delta = 0xE0; +# elif DARWIN_VERS == DARWIN_10_11 + UWord magic_delta = 0x100; # else # error "magic_delta: to be computed on new OS version" // magic_delta = tst->os_state.pthread - self @@ -497,9 +499,9 @@ void wqthread_hijack(Addr self, Addr kport, Addr stackaddr, Addr workitem, tst = VG_(get_ThreadState)(tid); if (0) VG_(printf)("wqthread_hijack reuse %s: tid %d, tst %p, " - "tst->os_state.pthread %#lx\n", + "tst->os_state.pthread %#lx, self %#lx\n", tst->os_state.pthread == self ? "SAME" : "DIFF", - tid, tst, tst->os_state.pthread); + tid, tst, tst->os_state.pthread, self); vex = &tst->arch.vex; vg_assert(tst->os_state.pthread - magic_delta == self); diff --git a/coregrind/m_syswrap/syswrap-x86-darwin.c b/coregrind/m_syswrap/syswrap-x86-darwin.c index 89e0595ae4..fb529617d7 100644 --- a/coregrind/m_syswrap/syswrap-x86-darwin.c +++ b/coregrind/m_syswrap/syswrap-x86-darwin.c @@ -427,8 +427,10 @@ void wqthread_hijack(Addr self, Addr kport, Addr stackaddr, Addr workitem, UWord magic_delta = 0; # elif DARWIN_VERS == DARWIN_10_7 || DARWIN_VERS == DARWIN_10_8 UWord magic_delta = 0x48; -# elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10 || DARWIN_VERS == DARWIN_10_11 +# elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10 UWord magic_delta = 0xB0; +# elif DARWIN_VERS == DARWIN_10_11 + UWord magic_delta = 0x100; # else # error "magic_delta: to be computed on new OS version" // magic_delta = tst->os_state.pthread - self -- 2.47.2