This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Variable read time * 3+ between program compiled w/ gcc 2.95 and w/ gcc 3.2 on Solaris
- From: Eric Brunel <eric dot brunel at pragmadev dot com>
- To: gdb at sources dot redhat dot com
- Date: Thu, 24 Apr 2003 16:45:16 +0200
- Subject: Variable read time * 3+ between program compiled w/ gcc 2.95 and w/ gcc 3.2 on Solaris
- Organization: PragmaDev
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 <eric dot brunel at pragmadev dot com> -
PragmaDev : Real Time Software Development Tools - http://www.pragmadev.com