Nicholas Nethercote <njn <at> cs.utexas.edu> writes:
> Even if that's the case, Valgrind should die with a helpful error message
> rather than just seg faulting. Benny, can you file a Bugzilla bug report?
> (see http://www.valgrind.org/support/bug_reports.html).
Hi Nicholas,
Here is my bug report. Hope it is of the right format and gives clear enough
description, since I am writing such report for the first time. Please
let me know if
you need further information. Thanks a lot!
Best Regards,
Benny.
========= Bug Report: Segmentation fault with valgrind 2.4.0-rc4 ==========
Valgrind version: 2.4.0-rc4
Linux version: Fedora Core 1
Kernel version (uname -r): 2.4.22-1.2115.nptl
Compilation command: g++ -o ad65536 -g -O -DN=65536 -Wno-deprecated
dsminit-add.cpp dsmlock.cpp dsmcomm.cpp dsmmem.cpp dsmall.cpp
g++ (gcc) version: gcc version 3.3.2 20031022 (Red Hat Linux 3.3.2-1)
My application program is a parallel program. I run it using 8 machines, they
communicate with each other through Linux sockets. SIGIO handler is installed
and file I/O is possible. However, when error occurs, there should not
be any SIGIO
signal invoking (signals may be invoked during my self-implemented barrier, but
they should have been served). There are no file I/O yet at the point
of valgrind
crash, except the program needs to read in the machine list at the start.
This is the error log obtained using valgrind -v:
[benny@... benny]$ vg/bin/valgrind -v --tool=memcheck
--error-limit=no ./ad65536
==6859== Memcheck, a memory error detector for x86-linux.
==6859== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
==6859== Using valgrind-2.4.0.rc4, a program supervision framework for
x86-linux.
==6859== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
==6859== Valgrind library directory: /home/benny/vg/lib/valgrind
==6859== Command line
==6859== ./ad65536
==6859== Startup, with flags:
==6859== -v
==6859== --tool=memcheck
==6859== --error-limit=no
==6859== Contents of /proc/version:
==6859== Linux version 2.4.22-1.2115.nptl
(bhcompile@...) (gcc version 3.2.3 20030422 (Red Hat
Linux 3.2.3-6)) #1 Wed Oct 29 15:42:51 EST 2003
==6859== Reading syms from /home/benny/ad65536 (0x8048000)
==6859== Warning: set address range perms: large range 285949952, a 0, v 0
==6859== Reading syms from /mnt/nfsroot/lib/ld-2.3.2.so (0x1B8E4000)
==6859== object doesn't have any debug info
==6859== Reading syms from /home/benny/vg/lib/valgrind/stage2 (0xB0000000)
==6859== Reading syms from /mnt/nfsroot/lib/ld-2.3.2.so (0xB1000000)
==6859== object doesn't have any debug info
==6859== Reading syms from /mnt/nfsroot/lib/libdl-2.3.2.so (0xB1016000)
==6859== object doesn't have any debug info
==6859== Reading syms from /mnt/nfsroot/lib/tls/libc-2.3.2.so (0xB1019000)
==6859== object doesn't have any debug info
==6859== Reading syms from
/home/benny/vg/lib/valgrind/vgskin_memcheck.so (0xB1152000)
==6859== Reading suppressions file: /home/benny/vg/lib/valgrind/default.supp
==6859==
==6859== Reading syms from /home/benny/vg/lib/valgrind/vg_inject.so (0x1B8FD000)
==6859== Reading syms from
/home/benny/vg/lib/valgrind/vgpreload_memcheck.so (0x1B900000)
==6859== Reading syms from /mnt/nfsroot/usr/lib/libstdc++.so.5.0.5 (0x1B918000)
==6859== object doesn't have a symbol table
==6859== object doesn't have any debug info
==6859== Reading syms from /mnt/nfsroot/lib/tls/libm-2.3.2.so (0x1B9D1000)
==6859== object doesn't have any debug info
==6859== Reading syms from
/mnt/nfsroot/lib/libgcc_s-3.3.2-20031023.so.1 (0x1B9F4000)
==6859== object doesn't have a symbol table
==6859== object doesn't have any debug info
==6859== Reading syms from /mnt/nfsroot/lib/tls/libc-2.3.2.so (0x1B9FD000)
==6859== object doesn't have any debug info
==6859== Reading syms from /mnt/nfsroot/lib/libdl-2.3.2.so (0x1BB39000)
==6859== object doesn't have any debug info
==6859== TRANSLATE: 0x1BA731D0 redirected to 0x1B9045A8
==6859== TRANSLATE: 0x1B8E4C30 redirected to 0x52BFF020
start
==6859== TRANSLATE: 0x1BA6C080 redirected to 0x1B9034E0
The file has 8 lines
==6859== TRANSLATE: 0x1BA6C200 redirected to 0x1B9039F0
ID is 0
ID 0: Hostname is GD074A
rsh -l benny GD075A "./ad65536 dsmid 1 port 17767 " &
rsh -l benny GD076A "./ad65536 dsmid 2 port 17767 " &
rsh -l benny GD077A "./ad65536 dsmid 3 port 17767 " &
rsh -l benny GD078A "./ad65536 dsmid 4 port 17767 " &
rsh -l benny GD079A "./ad65536 dsmid 5 port 17767 " &
rsh -l benny GD080A "./ad65536 dsmid 6 port 17767 " &
rsh -l benny GD081A "./ad65536 dsmid 7 port 17767 " &
First 0 is 0x8212020
Final 2047 is 0x10212000
End bound is 0x10222020
ID 0: Comm Init Okay
==6859== Warning: set address range perms: large range 268435456, a 0, v 1
maddr[0] is 0x1c7fc028
==6859== Warning: set address range perms: large range 268435456, a 0, v 1
maddr[1] is 0x2c7fe028
==6859== Warning: set address range perms: large range 268435456, a 0, v 1
maddr[2] is 0x3c800028
start
The file has 8 lines
ID is 2
ID 2: Hostname is GD076A
start
The file has 8 lines
ID is 1
ID 1: Hostname is GD075A
start
The file has 8 lines
ID is 3
ID 3: Hostname is GD077A
start
The file has 8 lines
ID is 4
ID 4: Hostname is GD078A
start
The file has 8 lines
ID is 5
ID 5: Hostname is GD079A
start
The file has 8 lines
ID is 6
ID 6: Hostname is GD080A
start
The file has 8 lines
ID is 7
ID 7: Hostname is GD081A
==6859== TRANSLATE: 0x1B9A8600 redirected to 0x1B903881
==6859== TRANSLATE: 0x1B9A6F50 redirected to 0x1B903D08
xbcount = 1, linec = 8, from 0
barr(): now at barrwait
xbcount = 2, linec = 8, from 2
xbcount = 3, linec = 8, from 5
xbcount = 4, linec = 8, from 7
xbcount = 5, linec = 8, from 1
xbcount = 6, linec = 8, from 3
xbcount = 7, linec = 8, from 6
xbcount = 8, linec = 8, from 4
Into barrgrant sending routine
Sending Barrgrant message to 0
Sending Barrgrant message to 1
Sending Barrgrant message to 2
Sending Barrgrant message to 3
Sending Barrgrant message to 4
Sending Barrgrant message to 5
Sending Barrgrant message to 6
Sending Barrgrant message to 7
barr(): barrwait says 0, passed barrier
Debug: Allocating 65536 elements on obj 128, address in object map is 0x1c7fc220
Debug: id = 128, objid = 128, #segment = 16
Debug: first segment address 0x1e7bc028
Debug: Allocating 65536 elements on obj 256, address in object map is 0x1c7fc420
Debug: id = 256, objid = 256, #segment = 16
Debug: first segment address 0x207bc028
Debug: Allocating 65536 elements on obj 384, address in object map is 0x1c7fc620
Debug: id = 384, objid = 384, #segment = 16
Debug: first segment address 0x227bc028
Debug: Allocating 65536 elements on obj 512, address in object map is 0x1c7fc820
Debug: id = 512, objid = 512, #segment = 16
Debug: first segment address 0x247bc028
Debug: Allocating 65536 elements on obj 640, address in object map is 0x1c7fca20
Debug: id = 640, objid = 640, #segment = 16
Debug: first segment address 0x267bc028
Debug: Allocating 65536 elements on obj 768, address in object map is 0x1c7fcc20
Debug: id = 768, objid = 768, #segment = 16
Debug: first segment address 0x287bc028
Debug: Allocating 65536 elements on obj 896, address in object map is 0x1c7fce20
Debug: id = 896, objid = 896, #segment = 16
Debug: first segment address 0x2a7bc028
Segmentation fault
[benny@... benny]$ exit
Script done on Thu 24 Mar 2005 07:48:32 PM HKT
(Using valgrind 2.2.0, the above error does not occur. Or, if my
program allocates
three chunks of 64MB of memory instead of 256MB, the above error does not
occur either with valgrind 2.4.0-rc4).
|