libstdc++/4164: 33 Memory Leak when using iostream
Carlo Wood
carlo@alinoe.com
Fri Apr 19 19:06:00 GMT 2002
The following reply was made to PR libstdc++/4164; it has been noted by GNATS.
From: Carlo Wood <carlo@alinoe.com>
To: pme@gcc.gnu.org, allali@univ-mlv.fr, gcc-bugs@gcc.gnu.org,
gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Cc:
Subject: Re: libstdc++/4164: 33 Memory Leak when using iostream
Date: Sat, 20 Apr 2002 03:57:10 +0200
On Fri, Apr 19, 2002 at 08:04:12PM -0000, pme@gcc.gnu.org wrote:
> Backtraces from a tool we don't have do not help us, especially when the
> backtraces do not specify /where/ the suspected memory leak takes place.
> Can you specify function names or line numbers?
What surprised me the most is that allali wrote a memory leak
test program to begin with, while there is libcwd! (Heh - I am the
author of libcwd - so don't blame me advertising it ;).
Anyway - I did run
#include <iostream>
int main() { return 0; }
through libcwd (version 0.99.19), and that gives the following libstdc++.so.3 "leaks":
new[] 0x804f0e0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4-objdir/i686-pc-linux-gnu/libstdc++-v3/include/bits/fstream.tcc:102 <unknown type>; (sz = 4)
0x804f058 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4-objdir/i686-pc-linux-gnu/libstdc++-v3/include/bits/fstream.tcc:48 <unknown type>; (sz = 12)
new[] 0x804efd8 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4-objdir/i686-pc-linux-gnu/libstdc++-v3/include/bits/fstream.tcc:102 <unknown type>; (sz = 4)
new[] 0x804ef58 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4-objdir/i686-pc-linux-gnu/libstdc++-v3/include/bits/fstream.tcc:67 <unknown type>; (sz = 4)
0x804eed0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4-objdir/i686-pc-linux-gnu/libstdc++-v3/include/bits/fstream.tcc:48 <unknown type>; (sz = 12)
new[] 0x804ee50 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4-objdir/i686-pc-linux-gnu/libstdc++-v3/include/bits/fstream.tcc:102 <unknown type>; (sz = 4)
0x804edc8 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4-objdir/i686-pc-linux-gnu/libstdc++-v3/include/bits/fstream.tcc:48 <unknown type>; (sz = 12)
0x804e9b0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/locale.cc:459 <unknown type>; (sz = 4)
0x804e7e8 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:123 <unknown type>; (sz = 8)
0x804e768 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:122 <unknown type>; (sz = 8)
0x804e6e0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:121 <unknown type>; (sz = 16)
0x804e660 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:120 <unknown type>; (sz = 8)
0x804e5e0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:119 <unknown type>; (sz = 8)
0x804de28 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:118 <unknown type>; (sz = 28)
0x804dda8 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:117 <unknown type>; (sz = 8)
0x804dd28 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:116 <unknown type>; (sz = 8)
0x804dc80 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:115 <unknown type>; (sz = 44)
0x804d3d0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:114 <unknown type>; (sz = 44)
0x804d350 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:113 <unknown type>; (sz = 8)
0x804d2d0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:112 <unknown type>; (sz = 8)
0x804d250 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:111 <unknown type>; (sz = 8)
0x804d1d0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:108 <unknown type>; (sz = 8)
0x804d150 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:107 <unknown type>; (sz = 8)
0x804d0c8 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:106 <unknown type>; (sz = 16)
0x804d048 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:105 <unknown type>; (sz = 8)
0x804cfc8 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:104 <unknown type>; (sz = 8)
0x804cad8 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:103 <unknown type>; (sz = 24)
0x804ca58 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:102 <unknown type>; (sz = 8)
0x804c9d8 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:101 <unknown type>; (sz = 8)
0x804c938 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:100 <unknown type>; (sz = 40)
0x804c898 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:99 <unknown type>; (sz = 40)
0x804c818 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:98 <unknown type>; (sz = 8)
0x804c780 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:97 <unknown type>; (sz = 28)
0x804c700 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:96 <unknown type>; (sz = 8)
0x804c678 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:83 <unknown type>; (sz = 12)
0x804c2e0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/locale.cc:455 <unknown type>; (sz = 36)
Obviously, these are the locations in the gcc-3.0.4 release source tree.
I don't consider any of these leaks as they are all related to
global objects of libstdc++ (the first 7 are for example the filebufs
of stdin, stdout and stderr).
--
Carlo Wood <carlo@alinoe.com>
More information about the Gcc-prs
mailing list