From: Andrew Burgess <aburgess@redhat.com>
To: gdb-patches@sourceware.org
Cc: Guinevere Larsen <guinevere@redhat.com>,
Pedro Alves <pedro@palves.net>,
Andrew Burgess <aburgess@redhat.com>
Subject: [PATCHv3 0/4] gdb: allow 'until' to work in outermost frame
Date: Tue, 16 Jun 2026 20:47:13 +0100 [thread overview]
Message-ID: <cover.1781638569.git.aburgess@redhat.com> (raw)
In-Reply-To: <cover.1781214731.git.aburgess@redhat.com>
Updates to address review comments from v2 series:
- Doc updates based on Eli's feedback.
- Patch #2:
+ Avoid swallowing Ctrl-C in try/catch. That whole try/catch
block has been removed in v3, so problem sorted!
+ Rewrote entry address calculation as suggested by Pedro, now
pulls all required information from the inferior.
+ Use 'objdump -f' rather than readelf to get the entry address in
the test.
+ Added a helper proc for is_svr4_target, which includes a larger
list of targets beyond just Linux. This is then used in the test.
+ Test updated to use -lbl flag in gdb_test_multiple.
- Patch #3:
+ Use 'frame' rather than 'bt 1'
+ Loosen the test regexp after the 'starti' command, this should
now work on Windows targets, or any target with multiple threads
at startup.
+ Test updated to use -lbl in gdb_test_multiple.
- In patch #3 the entry frame detection is moved from
`frame_unwind_caller_frame` into `get_prev_frame_always`, I hope
this will address Guinevere's concerns about having to add the
additional entry frame detection in multiple locations. Guinevere
also had some concerns about the naming of existing functions
(i.e. not things added by me in this commit), I don't plan to make
any naming changes to the get_prev_frame* functions in this series.
- Patch #4 is new, this adds some caching to avoid repeatedly
looking up the entry address. The new approach requires reading
target memory, which can be expensive, especially on remote
targets.
---
Andrew Burgess (4):
gdb: rename program_space::entry_point_address* functions
gdb: introduce program_space::get_entry_point_info function
gdb: allow 'until' to work in outermost frame
gdb: cache program space entry point information
gdb/NEWS | 7 +
gdb/arc-tdep.c | 2 +-
gdb/arch-utils.c | 2 +-
gdb/doc/gdb.texinfo | 22 +++
gdb/frame.c | 105 +++++++----
gdb/infcall.c | 2 +-
gdb/linux-tdep.c | 2 +-
gdb/progspace.c | 94 +++++++++-
gdb/progspace.h | 67 ++++++-
gdb/solib-frv.c | 2 +-
gdb/solib-svr4.c | 85 +++++++++
gdb/solib-svr4.h | 1 +
gdb/solib.h | 14 ++
gdb/testsuite/gdb.base/bt-after-starti.exp | 167 ++++++++++++++++++
gdb/testsuite/gdb.base/until-in-entry-frame.c | 22 +++
.../gdb.base/until-in-entry-frame.exp | 162 +++++++++++++++++
gdb/testsuite/lib/gdb.exp | 8 +
17 files changed, 717 insertions(+), 47 deletions(-)
create mode 100644 gdb/testsuite/gdb.base/bt-after-starti.exp
create mode 100644 gdb/testsuite/gdb.base/until-in-entry-frame.c
create mode 100644 gdb/testsuite/gdb.base/until-in-entry-frame.exp
base-commit: c311f4d37f31ff3fbb5db6923abcdf93bb75a37b
--
2.25.4
next prev parent reply other threads:[~2026-06-16 19:48 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-08 18:14 [PATCH] " Andrew Burgess
2026-06-11 19:24 ` Guinevere Larsen
2026-06-11 20:40 ` Andrew Burgess
2026-06-12 12:49 ` Guinevere Larsen
2026-06-11 21:59 ` [PATCHv2 0/3] " Andrew Burgess
2026-06-11 21:59 ` [PATCHv2 1/3] gdb: rename program_space::entry_point_address* functions Andrew Burgess
2026-06-12 15:41 ` Pedro Alves
2026-06-11 21:59 ` [PATCHv2 2/3] gdb: introduce program_space::get_entry_point_info function Andrew Burgess
2026-06-12 6:07 ` Eli Zaretskii
2026-06-15 10:14 ` Andrew Burgess
2026-06-15 12:01 ` Eli Zaretskii
2026-06-12 15:41 ` Pedro Alves
2026-06-15 10:29 ` Andrew Burgess
2026-06-16 18:36 ` Pedro Alves
2026-06-23 9:46 ` Andrew Burgess
2026-06-23 10:20 ` Pedro Alves
2026-06-11 21:59 ` [PATCHv2 3/3] gdb: allow 'until' to work in outermost frame Andrew Burgess
2026-06-12 15:57 ` Pedro Alves
2026-06-16 19:47 ` Andrew Burgess [this message]
2026-06-16 19:47 ` [PATCHv3 1/4] gdb: rename program_space::entry_point_address* functions Andrew Burgess
2026-06-16 19:47 ` [PATCHv3 2/4] gdb: introduce program_space::get_entry_point_info function Andrew Burgess
2026-06-17 11:52 ` Eli Zaretskii
2026-06-16 19:47 ` [PATCHv3 3/4] gdb: allow 'until' to work in outermost frame Andrew Burgess
2026-06-16 19:47 ` [PATCHv3 4/4] gdb: cache program space entry point information Andrew Burgess
2026-06-23 10:47 ` [PATCHv4 0/4] gdb: allow 'until' to work in outermost frame Andrew Burgess
2026-06-23 10:47 ` [PATCHv4 1/4] gdb: rename program_space::entry_point_address* functions Andrew Burgess
2026-06-23 10:47 ` [PATCHv4 2/4] gdb: introduce program_space::get_entry_point_info function Andrew Burgess
2026-06-23 10:47 ` [PATCHv4 3/4] gdb: allow 'until' to work in outermost frame Andrew Burgess
2026-06-23 10:47 ` [PATCHv4 4/4] gdb: cache program space entry point information Andrew Burgess
2026-06-25 15:26 ` [PATCHv5 0/4] gdb: allow 'until' to work in outermost frame Andrew Burgess
2026-06-25 15:26 ` [PATCHv5 1/4] gdb: rename program_space::entry_point_address* functions Andrew Burgess
2026-06-25 15:26 ` [PATCHv5 2/4] gdb: introduce program_space::get_entry_point_info function Andrew Burgess
2026-06-25 15:26 ` [PATCHv5 3/4] gdb: allow 'until' to work in outermost frame Andrew Burgess
2026-06-25 15:26 ` [PATCHv5 4/4] gdb: cache program space entry point information Andrew Burgess
2026-07-10 14:24 ` [PATCHv6 0/4] gdb: allow 'until' to work in outermost frame Andrew Burgess
2026-07-10 14:24 ` [PATCHv6 1/4] gdb: rename program_space::entry_point_address* functions Andrew Burgess
2026-07-10 14:24 ` [PATCHv6 2/4] gdb: introduce program_space::get_entry_point_info function Andrew Burgess
2026-07-10 15:39 ` Simon Marchi
2026-07-10 14:24 ` [PATCHv6 3/4] gdb: allow 'until' to work in outermost frame Andrew Burgess
2026-07-10 17:00 ` Simon Marchi
2026-07-10 17:01 ` Simon Marchi
2026-07-16 15:06 ` Andrew Burgess
2026-07-10 14:24 ` [PATCHv6 4/4] gdb: cache program space entry point information Andrew Burgess
2026-07-10 17:07 ` Simon Marchi
2026-07-18 13:11 ` [PATCHv7 0/4] gdb: allow 'until' to work in outermost frame Andrew Burgess
2026-07-18 13:11 ` [PATCHv7 1/4] gdb: rename program_space::entry_point_address* functions Andrew Burgess
2026-07-18 13:11 ` [PATCHv7 2/4] gdb: introduce program_space::get_entry_point_info function Andrew Burgess
2026-07-18 13:11 ` [PATCHv7 3/4] gdb: allow 'until' to work in outermost frame Andrew Burgess
2026-07-18 13:11 ` [PATCHv7 4/4] gdb: cache program space entry point information Andrew Burgess
2026-07-20 9:52 ` [PATCHv8 0/4] gdb: allow 'until' to work in outermost frame Andrew Burgess
2026-07-20 9:52 ` [PATCHv8 1/4] gdb: rename program_space::entry_point_address* functions Andrew Burgess
2026-07-20 9:52 ` [PATCHv8 2/4] gdb: introduce program_space::get_entry_point_info function Andrew Burgess
2026-07-20 9:52 ` [PATCHv8 3/4] gdb: allow 'until' to work in outermost frame Andrew Burgess
2026-07-20 9:52 ` [PATCHv8 4/4] gdb: cache program space entry point information Andrew Burgess
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=cover.1781638569.git.aburgess@redhat.com \
--to=aburgess@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=guinevere@redhat.com \
--cc=pedro@palves.net \
/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