List Info

Thread: GDB STL Memory Usage Issue




GDB STL Memory Usage Issue
user name
2007-04-09 18:40:58
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,
-- 
Ravi Ramaseshan
http://www.
geocities.com/ramaseshan_ravi/

" Reality is only something we believe in strongly.
"

Re: GDB STL Memory Usage Issue
user name
2007-04-10 09:36:29
On 4/10/07, Mark Kettenis <mark.kettenisxs4all.nl> wrote:
> > Date: Mon, 9 Apr 2007 19:40:58 -0400
> > From: "Ravi Ramaseshan"
<ramaseshan.ravigmail.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.

-- 
Ravi Ramaseshan
http://www.
geocities.com/ramaseshan_ravi/

" Reality is only something we believe in strongly.
"

Re: GDB STL Memory Usage Issue
user name
2007-04-11 03:21:06
Hi,

On Tue, 2007-04-10 at 10:36 -0400, Ravi Ramaseshan wrote:
> On 4/10/07, Mark Kettenis <mark.kettenisxs4all.nl> wrote:
> > > Date: Mon, 9 Apr 2007 19:40:58 -0400
> > > From: "Ravi Ramaseshan"
<ramaseshan.ravigmail.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


[1-3]

about | contact  Other archives ( Real Estate discussion Medical topics )