|
From: David J. <dj...@ho...> - 2005-03-09 14:43:13
|
During testing of 2.4rc1, I encountered a SIG11 that I can't explain. The program runs without problems without valgrind and shows no problems when run with valgrind 2.2. These tests were run on RH 9 I run valgrind like this /raid03/cs141/valgrind-2.4.0.rc1/bin/valgrind --tool=memcheck --num-callers=5 --db-attach=yes _ommain .... and get this ==25900== ==25900== Process terminating with default action of signal 11 (SIGSEGV): dumping core ==25900== Bad permissions for mapped region at address 0xB1285EB0 ==25900== at 0x1EB29411: sgfitfl_ (sgfitfl.f:192) ==25900== by 0x203B09BC: tvsw1fc_ (pmtvsw.f:686) ==25900== by 0x203AB510: smtvswa_ (smtvsw.f:1276) ==25900== by 0x2019A4C0: analysis(ReaderMap const&, WriterMap const&, SfmContext const&, bool, bool) (LegacyAdaptor.cc:726) ==25900== by 0x201988F7: analysis(cReaderMap const&, WriterMap const&, SfmContext const&, bool, bool) (LegacySfmAdaptor.cc:372) ==25900== ==25900== ---- Attach to debugger ? --- [Return/N/n/Y/y/C/c] ---- y ==25900== starting debugger with cmd: /usr/bin/gdb -nw /proc/26094/fd/1015 26094 GNU gdb Red Hat Linux (5.3post-0.20021129.18rh) Copyright 2003 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu"... Attaching to program: /proc/26094/fd/1015, process 26094 ... after reading a lot of symbols (This is fortran, please bear with me) 0x1eb29411 in sgfitfl (x=(), y=(), n=4, dt=4, ncoeff=-1500, filt=(), midpt=0, ierr=0) at sgfitfl.f:192 192 DLT = DT / 1.0D3 check addresses of DLT and DT (gdb) p &dlt $1 = (PTR TO -> ( real*8 )) 0x1ee82310 Current language: auto; currently fortran (gdb) p &dt $2 = (PTR TO -> ( real*4 )) 0x2045361c dump instruction to see what's actually happening at 0x1EB29411 (gdb) x/20i &sgfitfl_ 0x1eb293d8 <sgfitfl>: push %ebp 0x1eb293d9 <sgfitfl+1>: mov %esp,%ebp 0x1eb293db <sgfitfl+3>: sub $0x90,%esp 0x1eb293e1 <sgfitfl+9>: mov %esi,0xfffffff0(%ebp) 0x1eb293e4 <sgfitfl+12>: mov %ebx,0xffffffc0(%ebp) 0x1eb293e7 <sgfitfl+15>: call 0x1eb293ec <sgfitfl+20> 0x1eb293ec <sgfitfl+20>: pop %ebx 0x1eb293ed <sgfitfl+21>: add $0x317614,%ebx 0x1eb293f3 <sgfitfl+27>: mov 0x24(%ebp),%eax 0x1eb293f6 <sgfitfl+30>: movl $0x0,(%eax) 0x1eb293fc <sgfitfl+36>: mov 0x14(%ebp),%eax 0x1eb293ff <sgfitfl+39>: flds (%eax) 0x1eb29401 <sgfitfl+41>: lea 0xfffed108(%ebx),%eax 0x1eb29407 <sgfitfl+47>: fldl (%eax) 0x1eb29409 <sgfitfl+49>: fdivrp %st,%st(1) 0x1eb2940b <sgfitfl+51>: lea 0x41910(%ebx),%eax 0x1eb29411 <sgfitfl+57>: fstpl (%eax) 0x1eb29413 <sgfitfl+59>: lea 0xfffed100(%ebx),%eax 0x1eb29419 <sgfitfl+65>: fldl (%eax) 0x1eb2941b <sgfitfl+67>: lea 0x41910(%ebx),%eax dump registers to see what's in %eax (gdb) info register eax 0x1eb293d8 515019736 ecx 0x0 0 edx 0x1b934800 462637056 ebx 0x1ee40a00 518261248 esp 0x1e36b2cc 0x1e36b2cc ebp 0x1e36b35c 0x1e36b35c esi 0x20451ff4 541401076 edi 0x3fe05 261637 eip 0x1eb29411 0x1eb29411 eflags 0x200216 2097686 cs 0x23 35 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0xf 15 gs 0x33 51 addresses appear to be ok. Nowhere do I see the address 0xB1285EB0 that valgrind complains about Any suggestion on what I should do to track down this problem? |