Skip to Content.
Sympa Menu

sphenix-software-l - [Sphenix-software-l] Fwd: [Valgrind-users] Happy birthday, Valgrind!

sphenix-software-l AT lists.bnl.gov

Subject: sPHENIX discussion of software

List archive

Chronological Thread  
  • From: pinkenburg <pinkenburg AT bnl.gov>
  • To: "sphenix-software-l AT lists.bnl.gov" <sphenix-software-l AT lists.bnl.gov>, phenix-off-l <phenix-off-l AT lists.bnl.gov>
  • Subject: [Sphenix-software-l] Fwd: [Valgrind-users] Happy birthday, Valgrind!
  • Date: Wed, 27 Jul 2022 10:44:41 -0400

Hi folks,

just FYI - PHENIX was one of the first large adopters. Here is a mail from Dave (in his role as PHENIX computing coordinator) from 2 weeks later (8/10/2002):
David Morrison wrote:
Hi folks,

Here's another example of using valgrind to (I'm pretty sure) find code
problems.  Running a simple reconstruction gave several errors like this:

==11125== Conditional jump or move depends on uninitialised value(s)
==11125==    at 0x68D917FC: PadRec::setParameters(short *)
(/home/momchil/phenix3/source2/offline/packages/pad/PadRec.cc:101)
==11125==    by 0x68D95B09: PadRecModule::event(short, PHpadDetectorGeo
*, PHCompositeNode *)
(/home/momchil/phenix3/source2/offline/packages/pad/PadRecModule.cc:87)
==11125==    by 0x45BC26B6: ana_pad(PHCompositeNode *)
(/home/momchil/phenix3/source2/offline/framework/preco/padfuncs.C:776)
==11125==    by 0x459CDFEB: process_event(Event *)
(/home/momchil/phenix3/source2/offline/framework/preco/preco.C:906)

The code in question looks like this:

void PadRec::setParameters(short parList[])
{
   if (parList[1] == 1) cout << "PadRec::setParameters called" << endl;

   short tmp;

   tmp = parList[0];
   eventNumber = (tmp >= 0) ? tmp : 0;
   tmp = parList[1];
   debug = ( (tmp >= 0) && (tmp <= 5) ) ? tmp : 1;

where parList[0] is filled in PadRecModule.cc:70:

   parList[0] = eventNumber;
...
   padRecObj->setParameters(&parList[0]);

which is called in padfuncs.C which creates instances of PadRec like this:

   Pc1Rec = new PadRecModule();
   Pc2Rec = new PadRecModule();
   Pc3Rec = new PadRecModule();

but never seems to tell those PadRecModules about their event number.
Could one of the pad code cognoscenti look at this code and tell me
whether there really is a problem and, if so, fix it?

Dave

It has been by far our most useful tool (and I am sure everyone hates it), but I cannot recall it ever being wrong when it came to flagging memory problems. Here is the non mangled link to Nicholas Nethercote’s short writeup: https://nnethercote.github.io/2022/07/27/twenty-years-of-valgrind.html

with grudging respect,

Chris


-------- Forwarded Message -------- Subject: [Valgrind-users] Happy birthday, Valgrind! Date: Wed, 27 Jul 2022 13:43:29 +0200 From: Mark Wielaard <mark AT klomp.org> To: valgrind-announce AT lists.sourceforge.net CC: valgrind-developers AT lists.sourceforge.net, valgrind-users AT lists.sourceforge.net


It has been twenty years today since Valgrind 1.0 was released.

Make sure to read Nicholas Nethercote’s Twenty years of Valgrind:
https://urldefense.com/v3/__https://nnethercote.github.io/2022/07/27/twenty-years-of-valgrind.html__;!!P4SdNyxKAPE!GvaOtiGto6qeWD7DUjhF_4OKMgZ3LB4wJEshomRYVNQuz6bZv2b8uSvfrzCrGItg7L1u-5P7RVZkOQ$ And learn about the early days, Valgrind "skins", the influence
Valgrind had on raising the bar when it comes to correctness for C and
C++ programs, and why a hacker on the Rust programming language still
uses Valgrind.

Happy birthday, Valgrind!



_______________________________________________
Valgrind-users mailing list
Valgrind-users AT lists.sourceforge.net
https://urldefense.com/v3/__https://lists.sourceforge.net/lists/listinfo/valgrind-users__;!!P4SdNyxKAPE!GvaOtiGto6qeWD7DUjhF_4OKMgZ3LB4wJEshomRYVNQuz6bZv2b8uSvfrzCrGItg7L1u-5O-j-hvTQ$


  • [Sphenix-software-l] Fwd: [Valgrind-users] Happy birthday, Valgrind!, pinkenburg, 07/27/2022

Archive powered by MHonArc 2.6.24.

Top of Page