Wayne Werner
Wayne Werner

Reputation: 51777

Valgrind output different from expected (

I'm working my way through Learn C the Hard Way and I'm starting the section on valgrind.

An excerpt of the example output reads:

==3082== Use of uninitialised value of size 8 
==3082==    at 0x4E730EB: _itoa_word (_itoa.c:195) 
==3082==    by 0x4E743D8: vfprintf (vfprintf.c:1613) 
==3082==    by 0x4E7E6F9: printf (printf.c:35) 
==3082==    by 0x40052B: main (ex4.c:11) 

While my output looks like this:

==2362== Use of uninitialised value of size 4 
==2362==    at 0x40885CB: _itoa_word (in /lib/libc-2.16.so)
==2362==    by 0x408C13E: vfprintf (in /lib/libc-2.16.so)
==2362==    by 0x4092AE: printf (in /lib/libc-2.16.so)
==2362==    by 0x4061604: (below main) (in /lib/libc-2.16.so) 

How do I get my Valgrind output to match up? I'm not terribly worried about lines 2-4, but I would prefer that that last line actually correspond (and I'm guessing that it's probably related anyway).


I built my ex4 like this:

$ make ex4
cc -Wall -g    ex4.c    -o ex4
** Some warnings here **

And then executed valgrind like so:

$ valgrind ./ex4

I'm running valgrind 3.7.0 built from source on Arch linux, GCC 4.7.1 and because I have GLIBC 1.6 I modified my configure file and added this code:

     2.16)
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.16 family" >&5
$as_echo "2.16 family" >&6; }

$as_echo "#define GLIBC_2_16 1" >>confdefs.h

DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;

just below the ;; that matched the previous 2.14) case.

Upvotes: 1

Views: 382

Answers (1)

Douglas Leeder
Douglas Leeder

Reputation: 53310

I suspect you haven't got the debug/symbols for standard libraries installed.

The output will always vary slightly, due to different library versions, but you should be able to get some line numbers with debug packages.

You may need -O0 to avoid getting main() elided.

Upvotes: 1

Related Questions