This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Large memory usage by gdb
- From: Yao Qi <qiyaoltc at gmail dot com>
- To: Alex Lindsay <alexlindsay239 at gmail dot com>
- Cc: GDB <gdb at sourceware dot org>
- Date: Wed, 26 Jul 2017 16:55:34 +0100
- Subject: Re: Large memory usage by gdb
- Authentication-results: sourceware.org; auth=none
- References: <8d511930-9914-9aef-363f-2fff37dfc6a8@gmail.com> <86bmo7pshw.fsf@gmail.com> <4fc14853-b066-4fd7-f0c9-b98f442a9a95@gmail.com>
[Add gdb@ back]
On Wed, Jul 26, 2017 at 2:50 PM, Alex Lindsay <alexlindsay239@gmail.com> wrote:
> Thanks for your suggestion Philippe. I hope to try that this weekend.
>
> Yao,
Hi Alex, thanks for your information. I'll write a small
program which needs many small libraries, and see
if I can find some leaks.
>>
>> What is your executable?
>
> My project is here: github.com/arfc/moltres
>>
>> Can you give us some characteristics of your
>> executable to help us to reproduce this problem? Is it multi-threaded
>> program?
>
> It can be parallelized with threads or MPI, but when running with gdb I run
> single thread, single process.
>>
>> Is it a C or C++ program?
>
> C++
>>
>> Does it load many shared library?
>
> Yes it does load *a lot* of shared libraries, so I do expect a fairly large
> memory footprint, but I don't expect it to grow by large chunks with time.
> In case it's of use here's the output from `ldd moltres-dbg`:
>
> linux-vdso.so.1 => (0x00007ffdaf953000)
> libmoltres-dbg.so.0 =>
> /home/lindsayad/projects/moltres/lib/libmoltres-dbg.so.0
> (0x00007f4fa02de000)
> libsquirrel-dbg.so.0 =>
> /home/lindsayad/projects/moltres/squirrel/lib/libsquirrel-dbg.so.0
> (0x00007f4f9ff4a000)
> libmodule_loader_with_fp_rdg_ns_tm_pf-dbg.so.0 =>
> /home/lindsayad/projects/moose/modules/module_loader/lib/libmodule_loader_with_fp_rdg_ns_tm_pf-dbg.so.0
> (0x00007f4f9fd0b000)
> libphase_field-dbg.so.0 =>
> /home/lindsayad/projects/moose/modules/phase_field/lib/libphase_field-dbg.so.0
> (0x00007f4f9f124000)
> libtensor_mechanics-dbg.so.0 =>
> /home/lindsayad/projects/moose/modules/tensor_mechanics/lib/libtensor_mechanics-dbg.so.0
> (0x00007f4f9e733000)
> libnavier_stokes-dbg.so.0 =>
> /home/lindsayad/projects/moose/modules/navier_stokes/lib/libnavier_stokes-dbg.so.0
> (0x00007f4f9e0d4000)
> librdg-dbg.so.0 =>
> /home/lindsayad/projects/moose/modules/rdg/lib/librdg-dbg.so.0
> (0x00007f4f9dd9e000)
> libfluid_properties-dbg.so.0 =>
> /home/lindsayad/projects/moose/modules/fluid_properties/lib/libfluid_properties-dbg.so.0
> (0x00007f4f9da48000)
> libmoose-dbg.so.0 =>
> /home/lindsayad/projects/moose/framework/libmoose-dbg.so.0
> (0x00007f4f9b79c000)
> libpcre-dbg.so.0 =>
> /home/lindsayad/projects/moose/framework/contrib/pcre/libpcre-dbg.so.0
> (0x00007f4f9b567000)
> libgcc_s.so.1 => /opt/moose/gcc-6.2.0/lib64/libgcc_s.so.1
> (0x00007f4f9b351000)
> libmesh_dbg.so.0 =>
> /home/lindsayad/projects/moose/scripts/../libmesh/installed/lib/libmesh_dbg.so.0
> (0x00007f4f98f16000)
> libnetcdf.so.11 => /usr/lib/x86_64-linux-gnu/libnetcdf.so.11
> (0x00007f4f95bb0000)
> libvtkIOCore-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkIOCore-7.1.so.1
> (0x00007f4f958e4000)
> libvtkCommonCore-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkCommonCore-7.1.so.1
> (0x00007f4f95052000)
> libvtkCommonDataModel-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkCommonDataModel-7.1.so.1
> (0x00007f4f948a0000)
> libvtkFiltersCore-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkFiltersCore-7.1.so.1
> (0x00007f4f9404b000)
> libvtkIOXML-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkIOXML-7.1.so.1 (0x00007f4f93ce4000)
> libvtkImagingCore-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkImagingCore-7.1.so.1
> (0x00007f4f9389a000)
> libvtkIOImage-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkIOImage-7.1.so.1
> (0x00007f4f93452000)
> libvtkImagingMath-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkImagingMath-7.1.so.1
> (0x00007f4f931fd000)
> libvtkIOParallelXML-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkIOParallelXML-7.1.so.1
> (0x00007f4f92fb6000)
> libvtkParallelMPI-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkParallelMPI-7.1.so.1
> (0x00007f4f92d98000)
> libvtkParallelCore-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkParallelCore-7.1.so.1
> (0x00007f4f92aee000)
> libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f4f928d2000)
> libtbb.so.2 =>
> /home/lindsayad/embree-2.15.0.x86_64.linux/lib/libtbb.so.2
> (0x00007f4f92679000)
> libtbbmalloc.so.2 =>
> /home/lindsayad/embree-2.15.0.x86_64.linux/lib/libtbbmalloc.so.2
> (0x00007f4f92425000)
> libslepc.so.3.7 =>
> /opt/moose/slepc/slepc-3.7.3-mpich-clang/lib/libslepc.so.3.7
> (0x00007f4f91ff4000)
> libpetsc.so.3.7 =>
> /opt/moose/petsc/mpich_petsc-3.7.5/clang-opt-superlu/lib/libpetsc.so.3.7
> (0x00007f4f90c66000)
> libsuperlu_dist.so.5 =>
> /opt/moose/petsc/mpich_petsc-3.7.5/clang-opt-superlu/lib/libsuperlu_dist.so.5
> (0x00007f4f909b8000)
> libparmetis.so =>
> /opt/moose/petsc/mpich_petsc-3.7.5/clang-opt-superlu/lib/libparmetis.so
> (0x00007f4f9076d000)
> libmetis.so =>
> /opt/moose/petsc/mpich_petsc-3.7.5/clang-opt-superlu/lib/libmetis.so
> (0x00007f4f904ec000)
> libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6
> (0x00007f4f901b3000)
> libhwloc.so.5 => /usr/lib/x86_64-linux-gnu/libhwloc.so.5
> (0x00007f4f8ff78000)
> libmpifort.so.12 =>
> /opt/moose/mpich/mpich-3.2/clang-opt/lib/libmpifort.so.12
> (0x00007f4f8fd3c000)
> libgfortran.so.3 => /opt/moose/gcc-6.2.0/lib64/libgfortran.so.3
> (0x00007f4f8fa16000)
> libgomp.so.1 => /opt/moose/gcc-6.2.0/lib64/libgomp.so.1
> (0x00007f4f8f7e9000)
> libquadmath.so.0 => /opt/moose/gcc-6.2.0/lib64/libquadmath.so.0
> (0x00007f4f8f5a8000)
> libmpicxx.so.12 =>
> /opt/moose/mpich/mpich-3.2/clang-opt/lib/libmpicxx.so.12
> (0x00007f4f8f37e000)
> libmpi.so.12 => /opt/moose/mpich/mpich-3.2/clang-opt/lib/libmpi.so.12
> (0x00007f4f8ee09000)
> librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f4f8ec01000)
> libomp.so => /opt/moose/llvm-3.9.0/lib/libomp.so (0x00007f4f8e944000)
> libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
> (0x00007f4f8e726000)
> libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4f8e520000)
> libstdc++.so.6 => /opt/moose/gcc-6.2.0/lib64/libstdc++.so.6
> (0x00007f4f8e1a0000)
> libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4f8de97000)
> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4f8dad0000)
> libhdf5_serial_hl.so.100 =>
> /usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.100 (0x00007f4f8d882000)
> libhdf5_serial.so.100 => /usr/lib/x86_64-linux-gnu/libhdf5_serial.so.100
> (0x00007f4f8d32b000)
> libcurl-gnutls.so.4 => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
> (0x00007f4f8d0b9000)
> libvtkCommonExecutionModel-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkCommonExecutionModel-7.1.so.1
> (0x00007f4f8cd89000)
> libvtkCommonMisc-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkCommonMisc-7.1.so.1
> (0x00007f4f8cb41000)
> libvtkzlib-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkzlib-7.1.so.1 (0x00007f4f8c922000)
> libvtkCommonTransforms-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkCommonTransforms-7.1.so.1
> (0x00007f4f8c6e4000)
> libvtkCommonMath-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkCommonMath-7.1.so.1
> (0x00007f4f8c4b7000)
> libvtksys-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtksys-7.1.so.1 (0x00007f4f8c227000)
> libvtkCommonSystem-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkCommonSystem-7.1.so.1
> (0x00007f4f8c009000)
> libvtkIOXMLParser-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkIOXMLParser-7.1.so.1
> (0x00007f4f8bde0000)
> libvtkDICOMParser-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkDICOMParser-7.1.so.1
> (0x00007f4f8bb8a000)
> libvtkmetaio-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkmetaio-7.1.so.1
> (0x00007f4f8b86a000)
> libvtkpng-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkpng-7.1.so.1 (0x00007f4f8b633000)
> libvtktiff-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtktiff-7.1.so.1 (0x00007f4f8b3a3000)
> libvtkjpeg-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkjpeg-7.1.so.1 (0x00007f4f8b173000)
> libvtkIOLegacy-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkIOLegacy-7.1.so.1
> (0x00007f4f8ae6e000)
> libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1
> (0x00007f4f8ac4c000)
> libnuma.so.1 => /usr/lib/x86_64-linux-gnu/libnuma.so.1
> (0x00007f4f8aa41000)
> libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7
> (0x00007f4f8a837000)
> /lib64/ld-linux-x86-64.so.2 (0x000056155f77e000)
> libsz.so.2 => /usr/lib/x86_64-linux-gnu/libsz.so.2 (0x00007f4f8a632000)
> libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0
> (0x00007f4f8a410000)
> librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1
> (0x00007f4f8a1f4000)
> libpsl.so.5 => /usr/lib/x86_64-linux-gnu/libpsl.so.5
> (0x00007f4f89fe6000)
> libnettle.so.6 => /usr/lib/x86_64-linux-gnu/libnettle.so.6
> (0x00007f4f89db0000)
> libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30
> (0x00007f4f89a50000)
> libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2
> (0x00007f4f89804000)
> liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2
> (0x00007f4f895f6000)
> libldap_r-2.4.so.2 => /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2
> (0x00007f4f893a4000)
> libvtkexpat-7.1.so.1 =>
> /opt/moose/VTK-7.1.0/clang-opt/lib/libvtkexpat-7.1.so.1 (0x00007f4f8916f000)
> libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6
> (0x00007f4f88f69000)
> libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6
> (0x00007f4f88d63000)
> libaec.so.0 => /usr/lib/x86_64-linux-gnu/libaec.so.0
> (0x00007f4f88b5b000)
> libunistring.so.0 => /usr/lib/x86_64-linux-gnu/libunistring.so.0
> (0x00007f4f88845000)
> libhogweed.so.4 => /usr/lib/x86_64-linux-gnu/libhogweed.so.4
> (0x00007f4f88612000)
> libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10
> (0x00007f4f88392000)
> libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0
> (0x00007f4f8812b000)
> libidn.so.11 => /lib/x86_64-linux-gnu/libidn.so.11 (0x00007f4f87ef8000)
> libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6
> (0x00007f4f87ce5000)
> libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3
> (0x00007f4f87a10000)
> libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3
> (0x00007f4f877de000)
> libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2
> (0x00007f4f875da000)
> libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0
> (0x00007f4f873cd000)
> libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2
> (0x00007f4f871b2000)
> libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2
> (0x00007f4f86f97000)
> libgssapi.so.3 => /usr/lib/x86_64-linux-gnu/libgssapi.so.3
> (0x00007f4f86d55000)
> libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6
> (0x00007f4f86b4d000)
> libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1
> (0x00007f4f86947000)
> libheimntlm.so.0 => /usr/lib/x86_64-linux-gnu/libheimntlm.so.0
> (0x00007f4f8673e000)
> libkrb5.so.26 => /usr/lib/x86_64-linux-gnu/libkrb5.so.26
> (0x00007f4f864b1000)
> libasn1.so.8 => /usr/lib/x86_64-linux-gnu/libasn1.so.8
> (0x00007f4f8620e000)
> libhcrypto.so.4 => /usr/lib/x86_64-linux-gnu/libhcrypto.so.4
> (0x00007f4f85fd7000)
> libroken.so.18 => /usr/lib/x86_64-linux-gnu/libroken.so.18
> (0x00007f4f85dc1000)
> libwind.so.0 => /usr/lib/x86_64-linux-gnu/libwind.so.0
> (0x00007f4f85b96000)
> libheimbase.so.1 => /usr/lib/x86_64-linux-gnu/libheimbase.so.1
> (0x00007f4f85987000)
> libhx509.so.5 => /usr/lib/x86_64-linux-gnu/libhx509.so.5
> (0x00007f4f8573c000)
> libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
> (0x00007f4f85435000)
> libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1
> (0x00007f4f851fd000)
--
Yao (齐尧)