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
next 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).