[Q-e-developers] Using Valgrind and GDB with QE
Hsin-Yu Ko
hsinyu at princeton.edu
Thu May 5 20:59:43 CEST 2016
Hi Ye,
No problem, and thanks a lot for the explanation. I was a bit too sloppy
with interchanging libc and glibc (which is definitely not completely
correct)... And I think you are right about that the problem is probably
not from the glibc.
Thanks,
Hsin-Yu
On 05/05/2016 02:20 PM, Ye Luo wrote:
> Hi Hsin-Yu,
>
> I'm sorry that I didn't explain myself clearly.
> Meanwhile, I also got confused with libc and glibc
> I think It is neither a problem of glibc nor libc.
>
> I thought you mentioned that it might be a libc bug based on the
> reference you provided.
> [1] http://valgrind-users.narkive.com/MPnV7HOw/gcc-pg-valgrind-errors
> In this reference, the call stack shows that all the error comes from
> inside the libc.
>
> In the problem of this discussion, the call stack shows that the problem
> comes from the user program rather than any libraries.
>
> I hope now I explain myself well.
>
> Best,
> Ye
>
>
> ===================
> Ye Luo, Ph.D.
> Leadership Computing Facility
> Argonne National Laboratory
>
> 2016-05-05 13:06 GMT-05:00 Hsin-Yu Ko <hsinyu at princeton.edu
> <mailto:hsinyu at princeton.edu>>:
>
> Hi Ye,
>
> Thanks a lot for the clarification. Yes, you are right. It is glibc
> instead of libc.
>
> Best,
> Hsin-Yu
>
>
> On 05/05/2016 01:56 PM, Ye Luo wrote:
> > Hi Hsin-Yu,
> > I mean neither of them/.
> > /
> > I thought you mentioned that it might be a glibc bug based on the
> > reference you provided.
> > [1] http://valgrind-users.narkive.com/MPnV7HOw/gcc-pg-valgrind-errors
> > But in this case, all the error comes from inside the glibc.
> > So I think the problem here has nothing to do with the one you mentioned.
> >
> > Ye
> >
> > ===================
> > Ye Luo, Ph.D.
> > Leadership Computing Facility
> > Argonne National Laboratory
> >
> > 2016-05-05 12:40 GMT-05:00 Hsin-Yu Ko <hsinyu at princeton.edu <mailto:hsinyu at princeton.edu>
> > <mailto:hsinyu at princeton.edu <mailto:hsinyu at princeton.edu>>>:
> >
> > Hi Ye,
> >
> > Thanks a lot for the comment. Just for clarification: did you mean that
> > the failure to generate debug symbols not libc bug, or the "==10233==
> > Invalid write of size 8" warning not a libc bug?
> >
> > Thanks a lot,
> > Hsin-Yu
> >
> > On 05/05/2016 01:31 PM, Ye Luo wrote:
> > > It doesn't seem to be a libc bug.
> > > The call stack shows that in the subroutine check_quantity_dh ofyour
> > > module mbdvdw,
> > > the code failed in writing something into tgg_complex which seems to be
> > > a variable belongs to your module.
> > > Is this variable dynamically allocatable and not initialized?
> > >
> > > Ye
> > >
> > > ===================
> > > Ye Luo, Ph.D.
> > > Leadership Computing Facility
> > > Argonne National Laboratory
> > >
> > > 2016-05-05 12:14 GMT-05:00 Hsin-Yu Ko <hsinyu at princeton.edu <mailto:hsinyu at princeton.edu>
> <mailto:hsinyu at princeton.edu <mailto:hsinyu at princeton.edu>>
> > > <mailto:hsinyu at princeton.edu <mailto:hsinyu at princeton.edu>
> <mailto:hsinyu at princeton.edu <mailto:hsinyu at princeton.edu>>>>:
> > >
> > > Thomas,
> > >
> > > That is interesting. What you are seeing seems to be a libc
> > bug [1]. I
> > > have encountered something similar last month. I fixed the
> > problem on my
> > > machine by recompiling glibc with debug features enabled
> (I am
> > not sure
> > > how useful gentoo documentation is but I put the reference
> > here just in
> > > case [2]). I think removing -pg may be a quick fix according
> > to [1].
> > >
> > > Best,
> > > Hsin-Yu
> > >
> > > [1]
> > http://valgrind-users.narkive.com/MPnV7HOw/gcc-pg-valgrind-errors
> > > [2] https://wiki.gentoo.org/wiki/Debugging
> > >
> > > On 05/05/2016 12:34 PM, Thomas Markovich wrote:
> > > > Hsin-Yu,
> > > >
> > > > Thank you for the suggestion!
> > > >
> > > > I had -g in LDFLAGS:
> > > > LDFLAGS = -g -pthread -fopenmp
> > > >
> > > > but nothing equivalent in CFLAGS, which was defined as:
> > > > CFLAGS = -O3 $(DFLAGS) $(IFLAGS)
> > > >
> > > > I have since gone ahead and changed CFLAGS to
> > > > CFLAGS = -Og -g $(DFLAGS) $(IFLAGS)
> > > >
> > > > The resulting fortran compile statements look
> something like:
> > > > 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
> > > >
> > > > and reran valgrind. It gave the following output:
> > > >
> > > > ==30486== Invalid write of size 8
> > > > ==30486== at 0x1002735ED:
> > __mbdvdw_module_MOD_mbdvdw_tgg_complex (in
> > > > /Users/tmarkovich/bin/pw.x)
> > > > ==30486== by 0x100290F58:
> > > > __mbdvdw_module_MOD_mbdvdw_check_quantity_dh (in
> > /Users/tmarkovich/bin/pw.x)
> > > > ==30486== Address 0x1037989f0 is 0 bytes after a block of
> > size 1,728
> > > > alloc'd
> > > > ==30486== at 0x10092B4AB: malloc (in
> > > >
> >
> /usr/local/Cellar/valgrind/HEAD/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
> > > > ==30486== by 0x10028FEE2:
> > > > __mbdvdw_module_MOD_mbdvdw_check_quantity_dh (in
> > /Users/tmarkovich/bin/pw.x)
> > > > ==30486== by 0x1001D4567: v_of_rho_ (in
> > /Users/tmarkovich/bin/pw.x)
> > > > ==30486== by 0x10007C0BE: electrons_scf_ (in
> > /Users/tmarkovich/bin/pw.x)
> > > > ==30486== by 0x10007D385: electrons_ (in
> > /Users/tmarkovich/bin/pw.x)
> > > > ==30486== by 0x10018B30B: run_pwscf_ (in
> > /Users/tmarkovich/bin/pw.x)
> > > > ==30486== by 0x100001157: MAIN__ (pwscf.f90:30)
> > > > ==30486== by 0x1004EC496: main (pwscf.f90:14)
> > > >
> > > > This appears to not have changed much.
> > > >
> > > > Best,
> > > > Thomas
> > > >
> > > > On Thu, May 5, 2016 at 10:15 AM, Hsin-Yu Ko
> > <hsinyu at princeton.edu <mailto:hsinyu at princeton.edu>
> <mailto:hsinyu at princeton.edu <mailto:hsinyu at princeton.edu>>
> > <mailto:hsinyu at princeton.edu <mailto:hsinyu at princeton.edu>
> <mailto:hsinyu at princeton.edu <mailto:hsinyu at princeton.edu>>>
> > > > <mailto:hsinyu at princeton.edu
> <mailto:hsinyu at princeton.edu> <mailto:hsinyu at princeton.edu
> <mailto:hsinyu at princeton.edu>>
> > <mailto:hsinyu at princeton.edu <mailto:hsinyu at princeton.edu>
> <mailto:hsinyu at princeton.edu <mailto:hsinyu at princeton.edu>>>>> wrote:
> > > >
> > > > Hi Thomas,
> > > >
> > > > Did you put -g in CFLAGS and LDFLAGS? Valgrind
> seems to
> > > recognize some
> > > > lines inside MAIN__ while failing to find the
> linked ones.
> > > >
> > > > Best,
> > > > Hsin-Yu
> > > >
> > > > On 05/05/2016 09:48 AM, Thomas Markovich wrote:
> > > > > Hi,
> > > > >
> > > > > I'm preparing to push my module that implements the
> > Many Body
> > > > Dispersion
> > > > > van der Waals correction, and all associated forces.
> > As a last
> > > > thing, I
> > > > > ran my code through valgrind, and it seems to have
> > popped up a
> > > > couple of
> > > > > remaining things that I would like to fix before
> > release[1].
> > > > > Unfortunately, the valgrind output below is less
> than
> > clear
> > > on where
> > > > > exactly the error is, and it doesn't give any
> > important line
> > > numbers.
> > > > > Beyond this, addr2line gives thoroughly
> unhelpful output:
> > > > > ▶ gaddr2line -e pw.x 0x100520518
> > > > > ??:0.
> > > > >
> > > > > I have compiled QE given the following flags with
> > gfortran 4.9:
> > > > > FFLAGS = -Og -g -pg -fopenmp -fbacktrace
> > -fcheck=all
> > > > > -finit-real=nan
> -ffpe-trap=zero,invalid,zero,overflow
> > > > >
> > > > > Is there any way to compile QE such that it
> generates
> > all the
> > > > debugging
> > > > > symbols, so that I can get more readable and
> informative
> > > output from
> > > > > valgrind? I thought all I needed was the -g
> flag, but
> > it appears
> > > > that I
> > > > > might need more?
> > > > >
> > > > > Best,
> > > > > Thomas Markovich
> > > > >
> > > > > [1]
> > > > > ==10233== Invalid write of size 8
> > > > > ==10233== at 0x100520518:
> > > > __mbdvdw_module_MOD_mbdvdw_tgg_complex (in
> > > > > /Users/tmarkovich/bin/pw.x)
> > > > > ==10233== by 0x100555A88:
> > > > > __mbdvdw_module_MOD_mbdvdw_check_quantity_dh (in
> > > > /Users/tmarkovich/bin/pw.x)
> > > > > ==10233== Address 0x103131248 is 8 bytes after
> a block of
> > > size 1,728
> > > > > alloc'd
> > > > > ==10233== at 0x1011814AB: malloc (in
> > > > >
> > > >
> > >
> >
> /usr/local/Cellar/valgrind/HEAD/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
> > > > > ==10233== by 0x1005547B0:
> > > > > __mbdvdw_module_MOD_mbdvdw_check_quantity_dh (in
> > > > /Users/tmarkovich/bin/pw.x)
> > > > > ==10233== by 0x1003D56E4: v_of_rho_ (in
> > > /Users/tmarkovich/bin/pw.x)
> > > > > ==10233== by 0x1000F540B: electrons_scf_ (in
> > > > /Users/tmarkovich/bin/pw.x)
> > > > > ==10233== by 0x1000F6E18: electrons_ (in
> > > > /Users/tmarkovich/bin/pw.x)
> > > > > ==10233== by 0x10032AA28: run_pwscf_ (in
> > > > /Users/tmarkovich/bin/pw.x)
> > > > > ==10233== by 0x1000010BB: MAIN__ (pwscf.f90:30)
> > > > > ==10233== by 0x100B67C1F: main (pwscf.f90:14)
> > > > _______________________________________________
> > > > Q-e-developers mailing list
> > > > Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>
> > <mailto:Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>>
> > > <mailto:Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>
> > <mailto:Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>>>
> > > <mailto:Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>
> > <mailto:Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>>
> > > <mailto:Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>
> > <mailto:Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>>>>
> > > > http://qe-forge.org/mailman/listinfo/q-e-developers
> > > >
> > > >
> > > _______________________________________________
> > > Q-e-developers mailing list
> > > Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>
> > <mailto:Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>>
> > <mailto:Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>
> > <mailto:Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>>>
> > > http://qe-forge.org/mailman/listinfo/q-e-developers
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > Q-e-developers mailing list
> > > Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>
> <mailto:Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>>
> > > http://qe-forge.org/mailman/listinfo/q-e-developers
> > >
> > _______________________________________________
> > Q-e-developers mailing list
> > Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>
> <mailto:Q-e-developers at qe-forge.org
> <mailto:Q-e-developers at qe-forge.org>>
> > http://qe-forge.org/mailman/listinfo/q-e-developers
> >
> >
> >
> >
> > _______________________________________________
> > Q-e-developers mailing list
> > Q-e-developers at qe-forge.org <mailto:Q-e-developers at qe-forge.org>
> > http://qe-forge.org/mailman/listinfo/q-e-developers
> >
> _______________________________________________
> Q-e-developers mailing list
> Q-e-developers at qe-forge.org <mailto:Q-e-developers at qe-forge.org>
> http://qe-forge.org/mailman/listinfo/q-e-developers
>
>
More information about the developers
mailing list