public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Tom de Vries <tdevries@suse.de>
To: gdb-patches@sourceware.org
Subject: [RFC 0/7] [gdb/symtab, cc-with-dwz] Fix gdb.cp/breakpoint-locs.exp
Date: Fri, 25 Aug 2023 17:55:39 +0200	[thread overview]
Message-ID: <20230825155546.19617-1-tdevries@suse.de> (raw)

When running test-case gdb.cp/breakpoint-locs.exp with target board
cc-with-dwz, we occasionally run into:
...
FAIL: gdb.cp/breakpoint-locs.exp: break N1::C1::baz
...
due to the breakpoint having one instead of two locations.

This is PR symtab/30728.  This series fixes it.

The first five patches are preparation, the fix is in the last two patches.

The fix consists of adding entries to the cooked index for
DW_TAG_inlined_subroutine DIEs, with correct qualified names.

The fix is split up in two patches, as follows:
- the first fixes the target board unix case, and
- the second fixes the target board cc-with-dwz case.

Currently resolving deferred entries is done in the parallel for that
computes the cooked index.  The last patch moves resolving of deferred entries
out of the parallel for.

We can add two optimizations to move some of that computation back into the
parallel for:
- resolve intra-shard dependencies at the end of generating the shard, and
- don't defer backward intra-shard dependencies.

Both of these require to keep track of the range of DIEs that was indexed
in the shard, because currently the parent tracking cannot distuinguish
between the "no parent" and "don't know" cases.

I'd like to have some feedback on the current series before I proceed with
these optimizations, hence this is an RFC at this point.

Tested on x86_64-linux, with target boards unix, cc-with-dwz and
cc-with-dwz-m.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30728

Tom de Vries (7):
  [gdb/symtab] Factor out m_die_range_map and m_deferred_entries usage
  [gdb/symtab] Check effect in parent_map::set_parent
  [gdb/symtab] Handle nullptr parent in parent_map::set_parent
  [gdb/symtab] Add parent_map::dump
  [gdb/symtab] Add debug_handle_deferred_entries
  [gdb/symtab] Add DW_TAG_inlined_subroutine entries in the cooked index
    for c++
  [gdb/symtab] Resolve deferred entries, inter-shard case

 gdb/addrmap.c             |  19 ++++--
 gdb/addrmap.h             |   7 ++-
 gdb/dwarf2/cooked-index.c |  60 +++++++++++++++++++
 gdb/dwarf2/cooked-index.h | 114 +++++++++++++++++++++++++++++++++++-
 gdb/dwarf2/read.c         | 120 +++++++++++++++++++++++++-------------
 5 files changed, 269 insertions(+), 51 deletions(-)


base-commit: b73ffa23bf6ed7f48ce67881d97b4111ce3b8181
-- 
2.35.3


             reply	other threads:[~2023-08-25 15:55 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-25 15:55 Tom de Vries [this message]
2023-08-25 15:55 ` [RFC 1/7] [gdb/symtab] Factor out m_die_range_map and m_deferred_entries usage Tom de Vries
2023-08-25 15:55 ` [RFC 2/7] [gdb/symtab] Check effect in parent_map::set_parent Tom de Vries
2023-08-25 15:55 ` [RFC 3/7] [gdb/symtab] Handle nullptr parent " Tom de Vries
2023-08-25 15:55 ` [RFC 4/7] [gdb/symtab] Add parent_map::dump Tom de Vries
2023-08-25 15:55 ` [RFC 5/7] [gdb/symtab] Add debug_handle_deferred_entries Tom de Vries
2023-08-25 15:55 ` [RFC 6/7] [gdb/symtab] Add DW_TAG_inlined_subroutine entries in the cooked index for c++ Tom de Vries
2023-08-25 15:55 ` [RFC 7/7] [gdb/symtab] Resolve deferred entries, inter-shard case Tom de Vries
2023-09-08 18:56 ` [RFC 0/7] [gdb/symtab, cc-with-dwz] Fix gdb.cp/breakpoint-locs.exp Tom Tromey
2023-09-12 15:23   ` Tom de Vries
2023-09-13 14:37   ` Tom de Vries
2023-10-02 12:52     ` Tom de Vries

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=20230825155546.19617-1-tdevries@suse.de \
    --to=tdevries@suse.de \
    --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).