Re: valgrind on amd64 crashes when delivering signal for threade

看板FB_hackers作者時間11年前 (2014/04/24 15:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
On Wed, Apr 23, 2014 at 11:18:57PM -0700, Stanislav Sedov wrote: > > On Apr 23, 2014, at 1:01 PM, Mikolaj Golub <trociny@freebsd.org> wrote: > > > --- coregrind/m_sigframe/sigframe-amd64-freebsd.c.orig 2014-04-23 22:39:45.000000000 +0300 > > +++ coregrind/m_sigframe/sigframe-amd64-freebsd.c 2014-04-23 22:40:23.000000000 +0300 > > @@ -250,7 +250,7 @@ static Addr build_sigframe(ThreadState * > > UWord err; > > > > rsp -= sizeof(*frame); > > - rsp = VG_ROUNDDN(rsp, 16); > > + rsp = VG_ROUNDDN(rsp, 16) - 8; > > frame = (struct sigframe *)rsp; > > > > if (!extend(tst, rsp, sizeof(*frame))) > > > > Unfortunately, I have poor understanding of valgrind internals and > > what is going on exactly when it delivers a signal to the process, so > > failed to find a proper fix. > > This sounds like a proper solution to me though. Stack handling in valgrind > is indeed convoluted, but it seems in this case it clearly misaligns the stack > as it does not take into account the return address. Any objections if I commit > this fix to valgrind-freebsd? Sure, no objections from my side. Thanks. -- Mikolaj Golub _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
文章代碼(AID): #1JMBQk3C (FB_hackers)
文章代碼(AID): #1JMBQk3C (FB_hackers)