- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I'm using valgrind to analyze a code compiled with ifort, and I have some extrain information on different points of the code.
Some examples:
==2785== by 0x403CDB: main (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== Address 0x5a64178 is 112 bytes inside a block of size 116 alloc'd
==2785== at 0x4C265AE: malloc (vg_replace_malloc.c:207)
==2785== by 0x2110962: for__get_vm (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x2135456: for__open_proc (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x20F627E: for_open (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x6FCE94: c_input_mp_openfi_ (c_input.F90:798)
==2785== by 0x1DEACB2: startp_ (startp.f90:21)
==2785== by 0x13079E0: MAIN__ (mainpg.F90:82)
==2785== by 0x403CDB: main (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
or
==2785== Invalid read of size 8
==2785== at 0x20E474F: for__io_return (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x2106DDC: for_read_seq_fmt (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x720171: c_input_mp_randwr_ (c_input.F90:1302)
==2785== by 0x720011: c_input_mp_genfil_ (c_input.F90:1283)
==2785== by 0x6FD2BA: c_input_mp_openfi_ (c_input.F90:800)
==2785== by 0x1DEACB2: startp_ (startp.f90:21)
==2785== by 0x13079E0: MAIN__ (mainpg.F90:82)
==2785== by 0x403CDB: main (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
or
==2785== Conditional jump or move depends on uninitialised value(s)
==2785== at 0x218CE96: __intel_sse2_strlen (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x20E476B: for__io_return (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x2106DDC: for_read_seq_fmt (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x720171: c_input_mp_randwr_ (c_input.F90:1302)
==2785== by 0x720011: c_input_mp_genfil_ (c_input.F90:1283)
==2785== by 0x6FD2BA: c_input_mp_openfi_ (c_input.F90:800)
==2785== by 0x1DEACB2: startp_ (startp.f90:21)
==2785== by 0x13079E0: MAIN__ (mainpg.F90:82)
==2785== by 0x403CDB: main (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
I have many comments in the valgrind analysis, and I'm not sure about if is right or not....
I'm using intel ifort 11.1.056, and ubuntu 9.04 amd64:
Linux xxxx 2.6.27-15-generic #1 SMP Tue Oct 20 06:50:36 UTC 2009 x86_64 GNU/Linux
compilation: ifort -g -warn all -check all -traceback ....
Someone can give me some information about this kind of "remarks/errors" with valgrind?
Thanks.
I'm using valgrind to analyze a code compiled with ifort, and I have some extrain information on different points of the code.
Some examples:
==2785== by 0x403CDB: main (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== Address 0x5a64178 is 112 bytes inside a block of size 116 alloc'd
==2785== at 0x4C265AE: malloc (vg_replace_malloc.c:207)
==2785== by 0x2110962: for__get_vm (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x2135456: for__open_proc (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x20F627E: for_open (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x6FCE94: c_input_mp_openfi_ (c_input.F90:798)
==2785== by 0x1DEACB2: startp_ (startp.f90:21)
==2785== by 0x13079E0: MAIN__ (mainpg.F90:82)
==2785== by 0x403CDB: main (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
or
==2785== Invalid read of size 8
==2785== at 0x20E474F: for__io_return (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x2106DDC: for_read_seq_fmt (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x720171: c_input_mp_randwr_ (c_input.F90:1302)
==2785== by 0x720011: c_input_mp_genfil_ (c_input.F90:1283)
==2785== by 0x6FD2BA: c_input_mp_openfi_ (c_input.F90:800)
==2785== by 0x1DEACB2: startp_ (startp.f90:21)
==2785== by 0x13079E0: MAIN__ (mainpg.F90:82)
==2785== by 0x403CDB: main (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
or
==2785== Conditional jump or move depends on uninitialised value(s)
==2785== at 0x218CE96: __intel_sse2_strlen (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x20E476B: for__io_return (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x2106DDC: for_read_seq_fmt (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
==2785== by 0x720171: c_input_mp_randwr_ (c_input.F90:1302)
==2785== by 0x720011: c_input_mp_genfil_ (c_input.F90:1283)
==2785== by 0x6FD2BA: c_input_mp_openfi_ (c_input.F90:800)
==2785== by 0x1DEACB2: startp_ (startp.f90:21)
==2785== by 0x13079E0: MAIN__ (mainpg.F90:82)
==2785== by 0x403CDB: main (in /home/xxxx/bin/e600INTEL-dbg_2009.11.unix.exe)
I have many comments in the valgrind analysis, and I'm not sure about if is right or not....
I'm using intel ifort 11.1.056, and ubuntu 9.04 amd64:
Linux xxxx 2.6.27-15-generic #1 SMP Tue Oct 20 06:50:36 UTC 2009 x86_64 GNU/Linux
compilation: ifort -g -warn all -check all -traceback ....
Someone can give me some information about this kind of "remarks/errors" with valgrind?
Thanks.
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have also found that Valgrind becomes almost useless (because of a large number of warnings/errors) when analysing ifort-compiled executables. Maybe I am missing an option in valgrind? As an example, here is the simplest "Hello world" program:
Does anyone know how to use valgrind with ifort-compiled executables? Are there alternative tools which perform a similar function?
[cpp]program helloworldI compile it like this:
print *, 'Hello world'
end program[/cpp]
[cpp]ifort -g helloworld.f90[/cpp]Then run it "under" valgrind:
[cpp]valgrind a.out[/cpp]And I get a very long list of errors from (i guess) low-level fortran routines:
[cpp]==22344== Memcheck, a memory error detector
==22344== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
==22344== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info
==22344== Command: a.out
==22344==
==22344== Conditional jump or move depends on uninitialised value(s)
==22344== at 0x41E36C: for__open_proc (in /scratch/alr99/helloworld/a.out)
==22344== by 0x40CF94: for__open_default (in /scratch/alr99/helloworld/a.out)
==22344== by 0x412189: for_write_seq_lis (in /scratch/alr99/helloworld/a.out)
==22344== by 0x402B4C: MAIN__ (helloworld.f90:2)
==22344== by 0x402ADB: main (in /scratch/alr99/helloworld/a.out)
==22344==
==22344== Conditional jump or move depends on uninitialised value(s)
==22344== at 0x40F45C: for__get_vm (in /scratch/alr99/helloworld/a.out)
==22344== by 0x41E396: for__open_proc (in /scratch/alr99/helloworld/a.out)
==22344== by 0x40CF94: for__open_default (in /scratch/alr99/helloworld/a.out)
==22344== by 0x412189: for_write_seq_lis (in /scratch/alr99/helloworld/a.out)
==22344== by 0x402B4C: MAIN__ (helloworld.f90:2)
==22344== by 0x402ADB: main (in /scratch/alr99/helloworld/a.out)
(...)
[/cpp]
Does anyone know how to use valgrind with ifort-compiled executables? Are there alternative tools which perform a similar function?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Just thought I would update this, since I have found out about error suppression in valgrind (see http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress).
Suppressions such as the one below (which targets for__reopen_file) will clean up the output of valgrind:
I wonder whether there is a repository of such suppressions in use for ifort? This is definitely something that is tedious to assemble, could be shared & would save a lot of time.
Suppressions such as the one below (which targets for__reopen_file) will clean up the output of valgrind:
[plain]{ noname Memcheck:Cond fun:for__reopen_file ... } { noname Memcheck:Value8 fun:for__reopen_file ... }[/plain]
I wonder whether there is a repository of such suppressions in use for ifort? This is definitely something that is tedious to assemble, could be shared & would save a lot of time.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Rohou!
I hope will be possible use valgrind without false warnings/errors. I thing the problems are basically with read/write functions.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page