Hi Enrico,
Although not ideal, I have found a way to try and debug in parallel with my collaborator. I was able to download the relevant files to my work machine, but when it runs any of the above commands that is all it can run. I have tried running it this way using the command
valgrind --num-callers=30 --suppressions=$ROOTSYS/etc/valgrind-root.supp --log-file=valgrind-testMapPointing-part_54.log --leak-check=full --show-leak-kinds=all -v ./build/testMapPointing 54
but the output is not as informative as I had hoped. I tried uploading a zipped version of it here for reference, but it was still too big. The problem is that when it reports lines where problems could be occurring, the lines are too high level, not directing to lines in functions called by other functions. For example:
==3717== 2,388,940 (9,664 direct, 2,379,276 indirect) bytes in 4 blocks are definitely lost in loss record 31,618 of 31,797
==3717== at 0x483BE63: operator new(unsigned long) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==3717== by 0x50F078D: UCorrelator::fillStrategyWithKey(FilterStrategy*, char const*) (UCFilters.cc:74)
==3717== by 0x486E613: makePeakUnnormalizedFlatInterferometricMap(int, double, double, AnitaPol::EAnitaPol, TString, int, int) (eventCorrelator.cc:1178)
==3717== by 0x10CE9B: addPolTree(int, bool) (testMapPointing.cxx:110)
==3717== by 0x10E341: main (testMapPointing.cxx:290)
==3717==
==3717== 2,652,760 (9,664 direct, 2,643,096 indirect) bytes in 4 blocks are definitely lost in loss record 31,619 of 31,797
==3717== at 0x483BE63: operator new(unsigned long) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==3717== by 0x50F078D: UCorrelator::fillStrategyWithKey(FilterStrategy*, char const*) (UCFilters.cc:74)
==3717== by 0x486AF5C: makePeakUnnormalizedInterferometricMap(int, double, double, AnitaPol::EAnitaPol, bool, TString, int, int) (eventCorrelator.cc:743)
==3717== by 0x10D0C6: addPolTree(int, bool) (testMapPointing.cxx:133)
==3717== by 0x10E341: main (testMapPointing.cxx:290)
==3717==
I am looking to run now with the above command adding --tool=massif
to it, but I don’t think that will automatically go further in depth into which lines of code the leaking can be traced back to.
From this thread it looks like I might want to use --track-origins=yes
, or from this thread I would want to use --trace-children=yes
? They seem like they may also be applicable to wanting to see more information, but I’m not sure. Have you had experience using these flags before?