public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Tom Tromey <tromey@redhat.com>
To: gdb-patches@sourceware.org
Subject: [0/4] RFC: add DWARF index support
Date: Wed, 30 Jun 2010 22:33:00 -0000	[thread overview]
Message-ID: <m3aaqcqhgn.fsf@fleche.redhat.com> (raw)

This patch series adds support for a DWARF index to gdb.

The idea is to speed up gdb startup time by constructing a read-only
mmap()able index for the DWARF.  Then, rather than create psymtabs, we
simply map in this index and use it.

You can see some performance results for the index here (read the whole
thread, some initial results were wrong):

    http://sourceware.org/ml/archer/2010-q2/msg00055.html

This code is somewhat complementary to my earlier series to read
psymtabs in the background.  I haven't yet merged the two; but when I do
so I think I will also arrange for the index file to be mapped in a
background thread (to avoid needless I/O waits during startup).

I did investigate some other approaches before discarding them:

* Use the existing .debug_pubnames and .debug_pubtypes sections.  These
  are specified by DWARF, so they would be preferable.

  However, they don't include all the information that gdb needs (in
  particular, static symbols and enum constants), and due to C++ name
  canonicalization, actually reading these sections is just as slow as
  using psymtabs.

* Use sqlite instead of our own format.  sqlite is just too slow for our
  purposes (it takes way too long to make the index) and also the
  resulting database files are much bigger.

I'd appreciate comments on this.  

Tom

             reply	other threads:[~2010-06-30 22:33 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-30 22:33 Tom Tromey [this message]
2010-07-09 17:31 ` Tom Tromey
2010-07-09 17:45   ` Eli Zaretskii
2010-07-09 20:26     ` Tom Tromey
2010-07-10  7:03       ` Eli Zaretskii
2010-07-12 16:52         ` Tom Tromey
2010-07-22 11:31   ` Jan Kratochvil
2010-07-22 15:54     ` Tom Tromey
2010-07-30 20:46   ` Tom Tromey
2010-08-02 18:10     ` Doug Evans
2010-08-05 16:30       ` Tom Tromey
2010-08-05 16:32         ` Doug Evans
2010-08-05 19:55           ` Tom Tromey
2010-08-05 19:57           ` Tom Tromey
2010-08-06 17:15             ` Doug Evans
2010-08-06 17:40               ` Tom Tromey
2010-08-06 20:53                 ` Doug Evans
2010-08-09 20:36                   ` Tom Tromey
2010-08-09 21:16                     ` Doug Evans
2010-08-10 18:46                       ` Tom Tromey
2010-08-10 18:57                         ` Doug Evans
2010-08-09 20:25                 ` Jan Kratochvil
2010-08-09 20:43                   ` Tom Tromey
2010-08-09 20:33                 ` Jan Kratochvil
2010-07-13 20:42 ` Tom Tromey
2010-07-22  4:28   ` Paul Pluzhnikov
2010-07-22 14:14     ` Tom Tromey
2010-07-22 15:54       ` Tom Tromey
2010-07-22 16:20         ` Paul Pluzhnikov
2010-07-22 20:54         ` Tom Tromey
2010-07-23 22:12           ` Tom Tromey
2010-07-26 18:41             ` Ken Werner
2010-07-26 18:50               ` Tom Tromey
2010-07-27  7:58                 ` Ken Werner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3aaqcqhgn.fsf@fleche.redhat.com \
    --to=tromey@redhat.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).