From: Tom Tromey <tom@tromey.com>
To: Simon Marchi <simark@simark.ca>
Cc: Tom Tromey <tom@tromey.com>, gdb-patches@sourceware.org
Subject: Re: [PATCH v2 8/8] Update .debug_names documentation
Date: Tue, 10 Feb 2026 12:52:36 -0700 [thread overview]
Message-ID: <87ikc41im3.fsf@tromey.com> (raw)
In-Reply-To: <c8c2c5b2-fcdf-4d21-a2d4-155340250718@simark.ca> (Simon Marchi's message of "Tue, 10 Feb 2026 12:03:58 -0500")
>>>>> "Simon" == Simon Marchi <simark@simark.ca> writes:
>> For a variable to be shared in a PU, either it will just be a
>> declaration and each including CU will have a separate definition that
>> refers to it; or alternatively every such variable will have the same
>> address. But in the latter case they are the same variable.
Simon> You can't have a DW_TAG_variable in a PU that will represent a definition
Simon> in all the included CUs? For instance, if you have
Simon> static const char *my_var;
Simon> inside a C header file included by many C source files. And then, in
Simon> the DWARF, we "factor out" that DW_TAG_variable into a PU that is
Simon> "DW_TAG_imported_unit"-imported by many CUs. In that case, wouldn't we
Simon> have a my_var definition in all CUs?
This approach would make a different variable in each CU. They would
all share a name but have different addresses. So while it's possible
to share some of this in a PU (like, the name, type, and source
location), each CU would still end up with a separate DIE describing the
address.
Simon> Ok, so a use case for this would be: the user types "break
Simon> my_inlined_func", and then you want to find all CUs where
Simon> my_inlined_func is defined (even through a PU), to find all the inline
Simon> sites, to put breakpoints on all of them?
Yes. That's the failure addressed by the series.
>> BTW the DWARF approach to inline functions will also hamper incremental
>> CU expansion (if we ever get there). At the very least when finding an
>> inline function gdb will have to scan all DIEs in the CUs just in case.
Simon> That's a bummer, I hope we can find a way around this.
Since the reader pre-loads all the DIEs I am thinking it probably won't
be super expensive to also iterate over them. Or alternatively we could
have the DIE-loading process notice all the spots where an inlined
function is seen.
Tom
next prev parent reply other threads:[~2026-02-10 19:53 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-26 21:33 [PATCH v2 0/8] Correctly handle inline functions with dwz Tom Tromey
2026-01-26 21:33 ` [PATCH v2 1/8] Don't call add_dependence from index_imported_unit Tom Tromey
2026-01-26 21:33 ` [PATCH v2 2/8] Skip partial units in process_psymtab_comp_unit Tom Tromey
2026-01-26 21:33 ` [PATCH v2 3/8] Don't consider DW_TAG_inlined_subroutine as interesting Tom Tromey
2026-01-26 21:33 ` [PATCH v2 4/8] Combine two cases in cooked_index_functions::search Tom Tromey
2026-01-26 21:33 ` [PATCH v2 5/8] Remove C++ special case from process_imported_unit_die Tom Tromey
2026-01-26 21:33 ` [PATCH v2 6/8] Have iterate_over_one_compunit_symtab search included symtabs Tom Tromey
2026-01-30 22:04 ` Simon Marchi
2026-01-31 15:04 ` Tom Tromey
2026-01-26 21:33 ` [PATCH v2 7/8] Handle inline functions with dwz Tom Tromey
2026-02-10 3:51 ` Simon Marchi
2026-01-26 21:33 ` [PATCH v2 8/8] Update .debug_names documentation Tom Tromey
2026-02-10 4:26 ` Simon Marchi
2026-02-10 16:14 ` Tom Tromey
2026-02-10 17:03 ` Simon Marchi
2026-02-10 19:52 ` Tom Tromey [this message]
2026-02-10 20:25 ` Simon Marchi
2026-02-10 20:46 ` Tom Tromey
2026-01-26 21:42 ` [PATCH v2 0/8] Correctly handle inline functions with dwz Simon Marchi
2026-01-26 23:31 ` Tom Tromey
2026-01-26 22:05 ` Tom de Vries
2026-01-30 22:06 ` Simon Marchi
2026-03-05 18:53 ` Tom Tromey
2026-02-06 19:14 ` Tom Tromey
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=87ikc41im3.fsf@tromey.com \
--to=tom@tromey.com \
--cc=gdb-patches@sourceware.org \
--cc=simark@simark.ca \
/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