Hi,
On Tue, 2007-04-10 at 10:36 -0400, Ravi Ramaseshan wrote:
> On 4/10/07, Mark Kettenis <mark.kettenis xs4all.nl> wrote:
> > > Date: Mon, 9 Apr 2007 19:40:58 -0400
> > > From: "Ravi Ramaseshan"
<ramaseshan.ravi gmail.com>
> > >
> > > Hi,
> > >
> > > I observed some strange behavior with the
following system that I
> > > would like to know more about:
> > >
> > > I'm compiling a very memory intensive C++
application that uses STL
> > > (hashmaps of lists). Every few seconds I
erase() the entire hashmap
> > > (and the lists). When I run the program
standalone and examine the
> > > memory usage using top, I see the total
virtual memory of the program
> > > grow (sometimes to 60+MB) before the erase
call and after the erase
> > > call drop down to a few MB - which is the
behavior I would expect.
> > >
> > > However, when I run the same program through
GDB, the erase() does not
> > > seem to have any effect and the virtual
memory usage keeps on rising -
> > > which I do not understand.
> > >
> > > I am using GCC 4.0.3, GDB 6.4 and am
compiling the program with
> > > debugging information. I would like to
understand the reasons for such
> > > a behavior of my program under GDB.
> > >
> > > Thanks in advance,
> >
> > Smells like an operating system bug to me.
> >
> >
>
> I am running an Ubuntu system 2.6.15-28-686 kernel, if
that helps
> anyone explain the problem I observed.
>
Make sure your compiler version is the same than the
execution versión
libreries (see your LD_LIBRARY_PATH). I have been
experimented similar
problems when a project was compiled with GCC 3.4 and
executed with gcc
4.1 dynamic libraries.
Redards,
Álvaro
|