This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Variable read time * 3+ between program compiled w/ gcc 2.95 and w/ gcc 3.2 on Solaris


On Thu, Apr 24, 2003 at 04:45:16PM +0200, Eric Brunel wrote:
> 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.

Probably a bug; not known.  I don't know why this would happen,
especially for such a simple program; if you can get an ida of where
gdb is spending its time that would be interesting.  A decent profiling
tool should be able to do the job.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]