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