From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27122 invoked by alias); 20 Apr 2002 02:06:10 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 27067 invoked by uid 71); 20 Apr 2002 02:06:08 -0000 Date: Fri, 19 Apr 2002 19:06:00 -0000 Message-ID: <20020420020607.27065.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Carlo Wood Subject: Re: libstdc++/4164: 33 Memory Leak when using iostream Reply-To: Carlo Wood X-SW-Source: 2002-04/txt/msg01010.txt.bz2 List-Id: The following reply was made to PR libstdc++/4164; it has been noted by GNATS. From: Carlo Wood 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 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 ; (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 ; (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 ; (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 ; (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 ; (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 ; (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 ; (sz = 12) 0x804e9b0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/locale.cc:459 ; (sz = 4) 0x804e7e8 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:123 ; (sz = 8) 0x804e768 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:122 ; (sz = 8) 0x804e6e0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:121 ; (sz = 16) 0x804e660 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:120 ; (sz = 8) 0x804e5e0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:119 ; (sz = 8) 0x804de28 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:118 ; (sz = 28) 0x804dda8 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:117 ; (sz = 8) 0x804dd28 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:116 ; (sz = 8) 0x804dc80 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:115 ; (sz = 44) 0x804d3d0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:114 ; (sz = 44) 0x804d350 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:113 ; (sz = 8) 0x804d2d0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:112 ; (sz = 8) 0x804d250 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:111 ; (sz = 8) 0x804d1d0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:108 ; (sz = 8) 0x804d150 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:107 ; (sz = 8) 0x804d0c8 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:106 ; (sz = 16) 0x804d048 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:105 ; (sz = 8) 0x804cfc8 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:104 ; (sz = 8) 0x804cad8 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:103 ; (sz = 24) 0x804ca58 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:102 ; (sz = 8) 0x804c9d8 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:101 ; (sz = 8) 0x804c938 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:100 ; (sz = 40) 0x804c898 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:99 ; (sz = 40) 0x804c818 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:98 ; (sz = 8) 0x804c780 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:97 ; (sz = 28) 0x804c700 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:96 ; (sz = 8) 0x804c678 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/localename.cc:83 ; (sz = 12) 0x804c2e0 libstdc++.so.3:/usr/src/gcc/gcc-3.0.4/libstdc++-v3/src/locale.cc:455 ; (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