From: Tom Tromey <tom@tromey.com>
To: Simon Marchi <simon.marchi@polymtl.ca>
Cc: Tom Tromey <tom@tromey.com>,
gdb-patches@sourceware.org,
Joel Brobecker <brobecker@adacore.com>
Subject: Re: [PATCH 3/3] Cache the result of find_file_and_directory
Date: Mon, 06 Dec 2021 21:30:36 -0700 [thread overview]
Message-ID: <87r1aprq8j.fsf@tromey.com> (raw)
In-Reply-To: <3deee783-bee1-887f-6b8f-ffbe74131151@polymtl.ca> (Simon Marchi's message of "Sun, 5 Dec 2021 20:54:16 -0500")
Simon> Thanks. And while looking at that fix, I had this this question:
Simon> looking at find_file_and_directory:
Simon> file_and_directory res (dwarf2_string_attr (die, DW_AT_name, cu),
Simon> dwarf2_string_attr (die, DW_AT_comp_dir, cu));
Simon> `dwarf2_string_attr (die, DW_AT_name, cu)` is used as the name in
Simon> `fnd`, and `fnd` is saved in the dwarf2_per_cu_data structure. Is
Simon> `dwarf2_string_attr (die, DW_AT_name, cu)` value guaranteed to live at
Simon> least as long as the dwarf2_per_cu_data structure?
Yeah. The string data is mapped either from the .debug_str (normally)
or .debug_info (for very short strings, sometimes) section. The section
data is only unmapped when the per-BFD is destroyed, i.e., when the last
reference is removed. (There are other cases here, the section data
might be allocated and freed per-objfile if it has relocations, but
again, it's long enough.)
There are cases where the string data is manipulated first -- C++ name
canonicalization (I can't think of another case but maybe there are
some). However, when this is done, the resulting string is stored
somewhere with the appropriate lifetime, normally the per-BFD obstack.
Tom
prev parent reply other threads:[~2021-12-07 4:30 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-30 1:33 [PATCH 0/3] Refactor find_file_and_directory Tom Tromey
2021-11-30 1:33 ` [PATCH 1/3] Remove Irix case from find_file_and_directory Tom Tromey
2021-12-04 10:43 ` Joel Brobecker via Gdb-patches
2021-11-30 1:33 ` [PATCH 2/3] Move file_and_directory to new file and C++-ize Tom Tromey
2021-11-30 16:18 ` Lancelot SIX via Gdb-patches
2021-11-30 17:44 ` Tom Tromey
2021-12-04 10:38 ` Joel Brobecker via Gdb-patches
2021-12-04 18:22 ` Tom Tromey
2021-11-30 1:33 ` [PATCH 3/3] Cache the result of find_file_and_directory Tom Tromey
2021-12-04 10:42 ` Joel Brobecker via Gdb-patches
2021-12-04 18:22 ` Tom Tromey
2021-12-05 2:31 ` Simon Marchi via Gdb-patches
2021-12-05 3:46 ` Tom Tromey
2021-12-05 3:47 ` Simon Marchi via Gdb-patches
2021-12-05 20:17 ` Tom Tromey
2021-12-06 1:54 ` Simon Marchi via Gdb-patches
2021-12-07 4:30 ` Tom Tromey [this message]
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=87r1aprq8j.fsf@tromey.com \
--to=tom@tromey.com \
--cc=brobecker@adacore.com \
--cc=gdb-patches@sourceware.org \
--cc=simon.marchi@polymtl.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