From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13821 invoked by alias); 24 Apr 2003 14:39:01 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 13814 invoked from network); 24 Apr 2003 14:39:01 -0000 Received: from unknown (HELO mwinf0302.wanadoo.fr) (193.252.22.28) by sources.redhat.com with SMTP; 24 Apr 2003 14:39:01 -0000 Received: from eb.pragmadev (APastourelles-107-1-8-247.abo.wanadoo.fr [217.128.252.247]) by mwinf0302.wanadoo.fr (SMTP Server) with SMTP id 3B089C0002A5 for ; Thu, 24 Apr 2003 16:39:00 +0200 (CEST) Content-Type: text/plain; charset="iso-8859-1" From: Eric Brunel Organization: PragmaDev To: gdb@sources.redhat.com Subject: Variable read time * 3+ between program compiled w/ gcc 2.95 and w/ gcc 3.2 on Solaris Date: Thu, 24 Apr 2003 14:39:00 -0000 MIME-Version: 1.0 Message-Id: <03042416451601.01259@eb.pragmadev> Content-Transfer-Encoding: 8bit X-SW-Source: 2003-04/txt/msg00291.txt.bz2 Hi all, I don't know if the following problem belongs here or in the gcc newsgroup: we've noticed a drastic loss of performance when reading program variables from gdb between the versions 2.95.3 and 3.2.2 of gcc on Solaris 2.7. Here is a short example showing the problem: --foo.cpp--------------- int x; int main(int argc, char *argv[]) { x = 12; return 0; } ------------------------ I then compile this program using g++ 2.95.3 and 3.2.2 into the binaries foo2 and foo3 resp. Then I run: gdb -batch -x gdb.cmds fooN with the following commands file: --gdb.cmds-------------- break foo.cpp:6 run print x print x ... (200 times) print x quit ------------------------- Here are typical results: $ time gdb -batch -x gdb.cmds foo2 > /dev/null real 0m0.564s user 0m0.150s sys 0m0.110s $ time gdb -batch -x gdb.cmds foo3 > /dev/null real 0m1.726s user 0m1.340s sys 0m0.260s The reading time has been increased by a factor 3+. This is even worse if the variable is a structure and if I access fields in it. With a chained list read via x->next->next->next..., we got times around .5/.75 seconds with g++ 2.95, and more than 30 seconds (!) with g++ 3.2 We tested versions 5.2 and 5.3 of gdb and got similar results. Is this a bug? Is it known? Is there a workaround or a patch? Thanks a lot in advance. -- - Eric Brunel - PragmaDev : Real Time Software Development Tools - http://www.pragmadev.com