help-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: STL Container leaks/exception problem


From: Bernd Strieder
Subject: Re: STL Container leaks/exception problem
Date: Thu, 08 Jun 2006 12:07:52 +0200
User-agent: KNode/0.10.2

Hello,

Kenneth Karoliussen wrote:

> Hi,
> 
> I'm currently working on FreeBSD with and using GNU g++ v3.4.4.
> 
> The following code leaks and sometimes crashes with a bus error.

I can confirm the leak with gcc as delivered with SuSE 9.3.

gcc version 3.3.5 20050117 (prerelease) (SUSE Linux)

It is a stack leak, the stacks keeps growing, as observable with a
debugger.

g++ 4.0.3, 3.4.6, 3.4.4, 3.4.3, 3.3.6, and 3.3.4 do not to show the
problem, but g++ 3.3.5 or its prereleases might.

I think this is an error in older gcc releases, where stack space for
temporaries is not reused, where it should. Another workaround seems to
be putting the code within the try block into a function of it's own.
This seems to cleanup the stack.

void madness()
{
                        sayA(getA());
}

int main(int argc, char* argv[])
{
        while (true)
        {
                try {
                        madness()                        ;
                } catch (const char* const c) {
                        if (c) cerr <<"Exception: " <<c <<endl;
                }
        };


Bernd Strieder



reply via email to

[Prev in Thread] Current Thread [Next in Thread]