I have put [OT] in the subject line because I have run into this issue
with another project (timeephem), but I am bringing it up here because
I know there are expert developers here who use valgrind for PLplot
development, and the valgrind issue (for version 1:3.6.0~svn11254+nmu1
of valgrind from Debian squeeze) I have found has some nasty general
implications about the usefulness of that tool.

In short, the issue is valgrind is warning about a branch instruction
based on an uninitialized variable, and it points to this
source line as where the issue is occurring.

if ( testdel >= 1.0e-13 )

Ordinarily, that valgrind message (which is the first such message
encountered) would mean testdel was uninitialized, but the code
obviously initializes testdel right before this statement, and gdb
(invoked automatically by valgrind since I used the --db-attach=yes
option) confirms testdel (which is simply a difference between two
other double variables) has the correct value assigned to it.

It's possible that valgrind is just plain screwing up which line
number is causing the problem.  I suppose that could happen, for
example, if the (unlikely) event the above statement was optimized out
of existence. But that optimization would have to happen by default
for my version of gcc (Debian 4.4.5-8) 4.4.5 because no optimization
options are used at all for the compilation of the code in question.
(For the CMake-based build and test system for the timeephem project I
am currently just using CCFLAGS="-g".)

Anyhow, if there is no way any more with default optimization to
identify the source code line where valgrind finds problems, than what
optimization settings should I be using?  If there is no answer to
that question, then valgrind (one of my top favorite development
tools) might be useless for the context of the above code, and maybe
useless for everybody in general.  So I hope somebody here has an
answer.

BTW, you can find the above code at
http://timeephem.svn.sourceforge.net/viewvc/timeephem/trunk/jpl_ephemerides/ephcom2/src/testeph.c?view=log,
and you can see there that the context of the above line of code is
pretty straightforward.

The purpose of the ephcom2 subset of the timeephem project is to
transform the ascii form of the JPL ephemerides into a standard binary
form and test (with testeph.c) that that binary form produces expected
test results supplied by JPL.  This ephcom2 code started life a few
days ago as code at ephemeris.com, but that website hasn't been
changed since 2004 so I am taking over development of this abandoned
LGPL code.  I have developed a new CMake-based build and test system
for the code (natch), and I am already getting pretty good testeph
results for many of the JPL ephemerides.  But there are still some
minor bugs left that are exposed by some of the ephemerides.  So I am
dealing with those issues as well as this puzzling valgrind issue.

Note, if anybody wants to try the above software to verify the
valgrind issue for themselves, please contact me off list for the
simple svn, cmake, and make instructions you will need.  However, I
should warn that the compressed ascii JPL ephemerides that are part of
that svn repository require a one-time 2.5GB checkout and are an
essential part of the comprehensive testing of this ephcom2 software.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

------------------------------------------------------------------------------
Got Input?   Slashdot Needs You.
Take our quick survey online.  Come on, we don't ask for help often.
Plus, you'll get a chance to win $100 to spend on ThinkGeek.
http://p.sf.net/sfu/slashdot-survey
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to