From: Andrew Burgess via Gdb <gdb@sourceware.org>
To: Simon Sobisch <simonsobisch@gnu.org>, gdb@sourceware.org
Subject: Re: python API to trigger a "select-frame" like event with a given location
Date: Tue, 30 Sep 2025 16:30:04 +0100 [thread overview]
Message-ID: <87cy78dklf.fsf@redhat.com> (raw)
In-Reply-To: <35f6cb30-6118-4c3d-9c5a-2f819e6b7c6c@gnu.org>
Simon Sobisch via Gdb <gdb@sourceware.org> writes:
> using a frame filter and decorator I can drop "not interesting" frames
> and add "artificial - display only" ones:
>
>
> Instead of
>
> (gdb) backtrace
>
> #0 PROG2_ (...) at copybook.cpy:14
> #1 PROG2 (...) at progb.cob:127
> #2 PROG1_ (...) at init.cpy:21
> #3 PROG1 (...) at prog.cob:139
> #4 main (...) at prog.c:23223
>
> I can show (combined with
>
> (gdb) mybacktrace
>
> #0 PROG2_ (...) at copybook.cpy:14
> #0.0 COPYFUNC SECTION at copybook.cpy:14
> #0.1 PROGFIN SECTION at progb.cob:521
> #0.2 PROGMAIN SECTION at progb.cob:195
> #0.3 PROG2 at progb.cob:127
> #2 PROG1_ (...) at init.cpy:21
> #2.0 PROG-INIT-EXT SECTION at init.cpy:21
> #2.1 PROG-INIT SECTION at init.cpy:41
> #2.2 MAIN-000 SECTION at proga.cob:139
> #2.3 PROG1 at proga.cob:139
>
>
> Also there's the option to add myup and mydown commands which select the
> "expected" frame (0 and 2, in this example) where all the relevant
> variables are defined.
>
>
> But currently I see no way to programmatically "select" by location
> (frame + linespec/LOCATION) [which would, other than "list" also be
> passed to UIs/MI).
>
> Is there an option that I've overlooked?
>
>
> If not: could there be an extension to "select-frame level"
>
> select-frame level LOCATION
>
> select-frame level -- Select a stack frame by level and show LOCATION in
> the UI
>
> or a new command
>
> show-location LOCATION
>
> that executes what select-frame does, but _without_ selecting anything
> (calling interps_notify() with the location as "selection")?
If I understand what you need, then you are looking for way to implement
your 'myup' and 'mydown' commands such that GDB will appear to move
though the artificial frames (e.g. 0.0, 0.1, 0.2, 0.3, etc). To do this
you need to select the real frame (#0), but then want some way such that
GDB will notify the various UI's to indicate that their focus should
shift to the source locations corresponding to the artificial frames,
right?
You mention, but seem to dismiss, using 'list'. Can you expand on why
this doesn't meet your needs?
Which UIs in particular is it that you are interested in seeing update?
I ask because I'm wondering which events it is that would need to be
emitted. Could you expand with some user stories, which UI is the user
looking at, what actions do they perform, and what is updated as a
consequence.
Thanks,
Andrew
next prev parent reply other threads:[~2025-09-30 15:30 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-24 18:56 Simon Sobisch via Gdb
2025-09-30 15:30 ` Andrew Burgess via Gdb [this message]
2025-09-30 16:41 ` Simon Sobisch via Gdb
2025-10-06 15:54 ` Andrew Burgess via Gdb
2025-10-03 19:40 ` 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=87cy78dklf.fsf@redhat.com \
--to=gdb@sourceware.org \
--cc=aburgess@redhat.com \
--cc=simonsobisch@gnu.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