|
From: Josef W. <Jos...@gm...> - 2006-05-01 02:01:12
|
On Monday 01 May 2006 03:42, Julian Seward wrote: > > I will not document it otherwise, because it makes callgrind quite > > unstable (something to investigate). > > Ok. If --pop-on-jump is not used, then callgrind's stability is > unchanged, right? Yes. Nothing is changed when the option is not used. When using it, it probably leads to some underruns of the shadow call stack. This should be handled quite fine, but obviously can have problems. "callgrind --pop-on-jump /bin/true" runs fine, but: ================================================ weidendo@linux:~/tmp/vgself/run4> callgrind --pop-on-jump ls ==23939== Callgrind, a call-graph generating cache profiler. ==23939== Copyright (C) 2002-2006, and GNU GPL'd, by Josef Weidendorfer et al. ==23939== Using LibVEX rev 1604, a library for dynamic binary translation. ==23939== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP. ==23939== Using valgrind-3.2.0.SVN, a dynamic binary instrumentation framework. ==23939== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al. ==23939== For more details, rerun with: -v ==23939== ==23939== For interactive control, run 'callgrind_control -h'. ==23939== ==23939== Process terminating with default action of signal 11 (SIGSEGV) ==23939== Access not within mapped region at address 0xF1CCDC58 ==23939== at 0x4179E065: _IO_file_read (in /lib/tls/libc-2.3.5.so) ==23939== by 0x4179CDFD: _IO_file_underflow@@GLIBC_2.1 (in /lib/tls/libc-2.3.5.so) ==23939== by 0x4179F2EA: _IO_default_uflow (in /lib/tls/libc-2.3.5.so) ==23939== by 0x4179F0CB: __uflow (in /lib/tls/libc-2.3.5.so) ==23939== by 0x41794227: _IO_getline_info (in /lib/tls/libc-2.3.5.so) ==23939== by 0x4179414E: _IO_getline (in /lib/tls/libc-2.3.5.so) ==23939== by 0x4179C119: fgets_unlocked (in /lib/tls/libc-2.3.5.so) ==23939== by 0x404146A: (within /lib/libselinux.so.1) ==23939== by 0x4044365: (within /lib/libselinux.so.1) ==23939== by 0x403A0B4: (within /lib/libselinux.so.1) ==23939== by 0x4100B9A3: call_init (in /lib/ld-2.3.5.so) ==23939== by 0x4100BAE0: _dl_init (in /lib/ld-2.3.5.so) ==23939== --23939-- VALGRIND INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) - exiting --23939-- si_code=1; Faulting address: 0x10; sp: 0x626D27A8 valgrind: m_signals.c:1772 (sync_signalhandler): Assertion 'tid != 0' failed. ==23939== at 0xB00170B6: report_and_quit (m_libcassert.c:136) =========================================== As this is reproducable, it should be fixable... > > --- m_dispatch/dispatch-x86-linux.S (Revision 5868) > > +++ m_dispatch/dispatch-x86-linux.S (Arbeitskopie) > > @@ -51,6 +51,7 @@ > > */ > > .text > > .globl VG_(run_innerloop) > > +.type VG_(run_innerloop), @function > > VG_(run_innerloop): > > /* 4(%esp) holds guest_state */ > > /* 8(%esp) holds do_profiling */ > > @@ -251,8 +252,8 @@ > > popl %ecx > > popl %ebx > > ret > > +.size VG_(run_innerloop), .-VG_(run_innerloop) > > Sounds good. Please commit it. Will do. Josef |