<div dir="ltr">Hsin-Yu,<div><br></div><div>Thank you for the suggestion! </div><div><br></div><div>I had -g in LDFLAGS:</div><div>LDFLAGS        = -g -pthread -fopenmp<br></div><div><br></div><div>but nothing equivalent in CFLAGS, which was defined as:</div><div>CFLAGS         = -O3 $(DFLAGS) $(IFLAGS)<br></div><div><br></div><div>I have since gone ahead and changed CFLAGS to</div><div>CFLAGS         = -Og -g $(DFLAGS) $(IFLAGS)<br></div><div><br></div><div>The resulting fortran compile statements look something like:</div><div>mpif90 -Og -g -pg -fopenmp -Wall -Wextra -Warray-temporaries -Wconversion -fbacktrace -ffree-line-length-0 -finit-real=nan -ffpe-trap=zero,invalid,zero,overflow -x f95-cpp-input -fopenmp -D__GFORTRAN -D__STD_F95 -D__FFTW -D__MPI -D__PARA -D__SCALAPACK -D__OPENMP   -I../include -I../iotk/src -I../ELPA/src -I. -c mbdvdw.f90<br></div><div><br></div><div>and reran valgrind. It gave the following output:</div><div><br></div><div><div>==30486== Invalid write of size 8</div><div>==30486==    at 0x1002735ED: __mbdvdw_module_MOD_mbdvdw_tgg_complex (in /Users/tmarkovich/bin/pw.x)</div><div>==30486==    by 0x100290F58: __mbdvdw_module_MOD_mbdvdw_check_quantity_dh (in /Users/tmarkovich/bin/pw.x)</div><div>==30486==  Address 0x1037989f0 is 0 bytes after a block of size 1,728 alloc'd</div><div>==30486==    at 0x10092B4AB: malloc (in /usr/local/Cellar/valgrind/HEAD/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)</div><div>==30486==    by 0x10028FEE2: __mbdvdw_module_MOD_mbdvdw_check_quantity_dh (in /Users/tmarkovich/bin/pw.x)</div><div>==30486==    by 0x1001D4567: v_of_rho_ (in /Users/tmarkovich/bin/pw.x)</div><div>==30486==    by 0x10007C0BE: electrons_scf_ (in /Users/tmarkovich/bin/pw.x)</div><div>==30486==    by 0x10007D385: electrons_ (in /Users/tmarkovich/bin/pw.x)</div><div>==30486==    by 0x10018B30B: run_pwscf_ (in /Users/tmarkovich/bin/pw.x)</div><div>==30486==    by 0x100001157: MAIN__ (pwscf.f90:30)</div><div>==30486==    by 0x1004EC496: main (pwscf.f90:14)</div></div><div><br></div><div>This appears to not have changed much.</div><div><br></div><div>Best,</div><div>Thomas</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 5, 2016 at 10:15 AM, Hsin-Yu Ko <span dir="ltr"><<a href="mailto:hsinyu@princeton.edu" target="_blank">hsinyu@princeton.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Thomas,<br>
<br>
Did you put -g in CFLAGS and LDFLAGS? Valgrind seems to recognize some<br>
lines inside MAIN__ while failing to find the linked ones.<br>
<br>
Best,<br>
Hsin-Yu<br>
<div><div class="h5"><br>
On 05/05/2016 09:48 AM, Thomas Markovich wrote:<br>
> Hi,<br>
><br>
> I'm preparing to push my module that implements the Many Body Dispersion<br>
> van der Waals correction, and all associated forces. As a last thing, I<br>
> ran my code through valgrind, and it seems to have popped up a couple of<br>
> remaining things that I would like to fix before release[1].<br>
> Unfortunately, the valgrind output below is less than clear on where<br>
> exactly the error is, and it doesn't give any important line numbers.<br>
> Beyond this, addr2line gives thoroughly unhelpful output:<br>
> ▶ gaddr2line -e pw.x 0x100520518<br>
> ??:0.<br>
><br>
> I have compiled QE given the following flags with gfortran 4.9:<br>
> FFLAGS         = -Og -g -pg -fopenmp -fbacktrace -fcheck=all<br>
> -finit-real=nan -ffpe-trap=zero,invalid,zero,overflow<br>
><br>
> Is there any way to compile QE such that it generates all the debugging<br>
> symbols, so that I can get more readable and informative output from<br>
> valgrind? I thought all I needed was the -g flag, but it appears that I<br>
> might need more?<br>
><br>
> Best,<br>
> Thomas Markovich<br>
><br>
> [1]<br>
> ==10233== Invalid write of size 8<br>
> ==10233==    at 0x100520518: __mbdvdw_module_MOD_mbdvdw_tgg_complex (in<br>
> /Users/tmarkovich/bin/pw.x)<br>
> ==10233==    by 0x100555A88:<br>
> __mbdvdw_module_MOD_mbdvdw_check_quantity_dh (in /Users/tmarkovich/bin/pw.x)<br>
> ==10233==  Address 0x103131248 is 8 bytes after a block of size 1,728<br>
> alloc'd<br>
> ==10233==    at 0x1011814AB: malloc (in<br>
> /usr/local/Cellar/valgrind/HEAD/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)<br>
> ==10233==    by 0x1005547B0:<br>
> __mbdvdw_module_MOD_mbdvdw_check_quantity_dh (in /Users/tmarkovich/bin/pw.x)<br>
> ==10233==    by 0x1003D56E4: v_of_rho_ (in /Users/tmarkovich/bin/pw.x)<br>
> ==10233==    by 0x1000F540B: electrons_scf_ (in /Users/tmarkovich/bin/pw.x)<br>
> ==10233==    by 0x1000F6E18: electrons_ (in /Users/tmarkovich/bin/pw.x)<br>
> ==10233==    by 0x10032AA28: run_pwscf_ (in /Users/tmarkovich/bin/pw.x)<br>
> ==10233==    by 0x1000010BB: MAIN__ (pwscf.f90:30)<br>
> ==10233==    by 0x100B67C1F: main (pwscf.f90:14)<br>
</div></div>_______________________________________________<br>
Q-e-developers mailing list<br>
<a href="mailto:Q-e-developers@qe-forge.org">Q-e-developers@qe-forge.org</a><br>
<a href="http://qe-forge.org/mailman/listinfo/q-e-developers" rel="noreferrer" target="_blank">http://qe-forge.org/mailman/listinfo/q-e-developers</a><br>
</blockquote></div><br></div>