public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
* Re: Improving GDB startup time with large programs
@ 2004-05-03  3:39 Michael Elizabeth Chastain
  0 siblings, 0 replies; 9+ messages in thread
From: Michael Elizabeth Chastain @ 2004-05-03  3:39 UTC (permalink / raw)
  To: gdb, savoiu

Yeah.  Nothing egregiously bad leaps out at me from this information.

You could try compiling big parts of your program with "-g1"
instead of "-g".  The default "-g" level is "-g2", which produces
much more debug info.

Also, in the future, maybe the linker could remove duplicate
information from dwarf-2 sections.

Michael C

^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: Improving GDB startup time with large programs
@ 2004-05-03  1:56 Michael Elizabeth Chastain
  2004-05-03 15:00 ` Andrew Cagney
  0 siblings, 1 reply; 9+ messages in thread
From: Michael Elizabeth Chastain @ 2004-05-03  1:56 UTC (permalink / raw)
  To: gdb, savoiu

Hi Nick,

> I'm currently using 6.1 to which I have just upgraded. However, it seems
> about 15% slower at startup than 6.0 despite my expectations that it
> would be faster.

That's a bummer.  I have one large C++ program, the 'monotone'
executable, that got a lot faster (native i686-pc-linux-gnu,
red hat 8.0, gcc 3.3.something).

> I'm using g++ 3.2 with '-Wall -Wno-unused -g'

You could try upgrading to g++ 3.3.3 or g++ 3.4.0.
Basically, if you have a lot of disk space, and you configure
the compiler with '--prefix=...', you can play with different
compilers.

I have no reason to think that will actually help any, though.

> How do I profile gdb?

When you build gdb, configure as normal.
Then use this command to build:

  make CFLAGS='-pg'

Then install as normal.

(As you might already know, experimenting with different versions of gdb
is a lot easier and safer if you use --prefix=... when configuring it.
I have dozens of gcc's and several gdb's on my system at any time).

Then run the new gdb as you normally would on your test program.
Make sure to quit gdb cleanly at the end.

Look for a file named 'gmon.out'.  This is the data file from the
profiler.  Then run 'gprof /path/to/installed/bin/gdb' to see the
output.  It will have this kind of format:

  Flat profile:

  Each sample counts as 0.01 seconds.
    %   cumulative   self              self     total
   time   seconds   seconds    calls  ms/call  ms/call  name
   16.67      0.01     0.01   175396     0.00     0.00  symbol_natural_name
   16.67      0.02     0.01    27446     0.00     0.00  htab_find_slot_with_hash
   16.67      0.03     0.01    15575     0.00     0.00  read_partial_die
   16.67      0.04     0.01      146     0.07     0.10  dwarf2_read_abbrevs
   16.67      0.05     0.01        7     1.43     1.98  find_methods
    8.33      0.06     0.01     6466     0.00     0.00  xrealloc
    8.33      0.06     0.01       31     0.16     0.16  xcalloc

  ...

Now, if you can do this for gdb 6.0 versus gdb 6.1, and report the
top 15-20 lines of the profile output, that would be interesting data.
And then there's the CVS version of gdb.

Michael C

^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: Improving GDB startup time with large programs
@ 2004-05-02 22:49 Michael Elizabeth Chastain
  2004-05-02 23:11 ` Nick Savoiu
  2004-05-03  2:49 ` Nick Savoiu
  0 siblings, 2 replies; 9+ messages in thread
From: Michael Elizabeth Chastain @ 2004-05-02 22:49 UTC (permalink / raw)
  To: gdb, savoiu

Which version of gdb are you using?
What platform are you running on?
Is it native or cross?  If it's cross, what is the target platform?
What language is your program written in?
What compiler and debug options are you using on your program?

The answer is probably 'file a PR with lots of information about what
you are doing, and then do some profiling on gdb to help us out, and
then maybe the next release of gdb will be faster'.

If you are running gdb 6.0 or earlier, and if your program is written in
C++, then gdb 6.1 will load faster because of its new C++ demangler.
That's the major speed improvement lately that I'm aware of.  Daniel J
knows a lot more about other speed improvements than I do.

Michael C
GDB QA Guy

^ permalink raw reply	[flat|nested] 9+ messages in thread
* Improving GDB startup time with large programs
@ 2004-05-02 22:12 Nick Savoiu
  0 siblings, 0 replies; 9+ messages in thread
From: Nick Savoiu @ 2004-05-02 22:12 UTC (permalink / raw)
  To: gdb

Hi,

I have a rather large project for which I would like to improve the debugging 
startup time. Right now it takes GDB a good 20-30 seconds (loading symbols 
and such, I assume) from invoking 'run' to really executing the debugged 
program.

Does anyone have info or a pointer to info on how to optimize this?

Thanks,
Nick

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2004-05-04 19:44 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-03  3:39 Improving GDB startup time with large programs Michael Elizabeth Chastain
  -- strict thread matches above, loose matches on Subject: below --
2004-05-03  1:56 Michael Elizabeth Chastain
2004-05-03 15:00 ` Andrew Cagney
2004-05-02 22:49 Michael Elizabeth Chastain
2004-05-02 23:11 ` Nick Savoiu
2004-05-03  2:49 ` Nick Savoiu
2004-05-03 17:17   ` Nick Savoiu
2004-05-04 19:44   ` Daniel Jacobowitz
2004-05-02 22:12 Nick Savoiu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).