From: "Schimpe, Christina" <christina.schimpe@intel.com>
To: Tom Tromey <tom@tromey.com>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>,
"thiago.bauermann@linaro.org" <thiago.bauermann@linaro.org>
Subject: RE: [PATCH v2 6/9] gdb: Add command option 'bt -shadow' to print the shadow stack backtrace.
Date: Thu, 9 Apr 2026 16:48:13 +0000 [thread overview]
Message-ID: <SN7PR11MB76380E7D65B70C16DAA260BFF9582@SN7PR11MB7638.namprd11.prod.outlook.com> (raw)
In-Reply-To: <87a4x461ff.fsf@tromey.com>
Hi Tom,
Thanks a lot for the review.
> -----Original Message-----
> From: Tom Tromey <tom@tromey.com>
> Sent: Donnerstag, 19. Februar 2026 19:20
> To: Schimpe, Christina <christina.schimpe@intel.com>
> Cc: gdb-patches@sourceware.org; thiago.bauermann@linaro.org
> Subject: Re: [PATCH v2 6/9] gdb: Add command option 'bt -shadow' to print
> the shadow stack backtrace.
>
> >>>>> Christina Schimpe <christina.schimpe@intel.com> writes:
>
> > Add command option '-shadow" to the backtrace command to print the
> > shadow stack backtrace instead of the normal backtrace.
>
> Thanks.
>
> > -annotate_frame_function_name (void)
> > +annotate_frame_function_name (bool shadowstack_frame)
> > {
> > if (annotation_level == 2)
> > - printf_unfiltered (("\n\032\032frame-function-name\n"));
> > + {
> > + if (!shadowstack_frame)
> > + printf_unfiltered (("\n\032\032frame-function-name\n"));
> > + else
> > + printf_unfiltered (("\n\032\032shadow-stack-frame-function-
> name\n"));
> > + }
>
> I think it is fine to just drop all the annotation changes.
> As far as I know, no client even uses annotation_level > 1.
>
> Emacs, maybe the only existing user of annotations, passes --fullname which
> uses:
>
> case 'f':
> annotation_level = 1;
>
Ah, thanks for sharing that, I will remove them now.
> > + if (should_print_location (print_what) || sal.symtab == nullptr)
> > + {
> > + gdb::unique_xmalloc_ptr<char> funname = find_pc_funname
> > + (frame.value);
> > +
> > + { /* Extra scope to print frame tuple. */
> > + ui_out_emit_tuple tuple_emitter (uiout, "shadow-stack-frame");
>
> The extra scope doesn't really look necessary here, since:
> > + } /* Extra scope to print frame tuple. */
> > +
> > + uiout->text ("\n");
>
> ... it seems fine to emit this text before the tuple emitter is destroyed? And
> there's already an extras scope from the "then" block.
Hm, I followed the logic in the equivalent function for the normal backtrace: stack.c:print_frame.
But right now, I cannot think about a specific reason why the extra scope is important.
In similar code in the following patch
"gdb: Provide gdbarch hook to distinguish shadow stack backtrace elements."
I also don't have an extra scope before the new line... and it did not cause any problems.
So you're right, I can probably remove it.
> > + gdb_flush (gdb_stdout);
> Is flushing really needed? I feel like I saw this in a different patch in the series
> as well, and forgot to ask about it there.
In the similar function to print the normal backtrace (stack.c: do_print_frame_info), we have
the flushing, too.
This should make sure that the output is directly visible to the user, which might be
important in case of long stack traces.
Or in case of an error at least all frames that were correctly unwound are printed.
> > +
> > +/* Read the memory at shadow stack pointer SSP and assign it to
> > + RETURN_VALUE. In case we cannot read the memory, set REASON to
> > + ssp_unwind_stop_reason::memory_read_error and return false. */
>
> It seems odd to combine a bool return and an out parameter when the enum
> has a "no_error" value.
> unwind_prev_shadow_stack_frame_info
> Maybe just a bool return would be more appropriate and then the callers
> could set their own out parameters. Especially since one caller doesn't even
> need this.
You're right. I will change that.
> > -static const char *const print_frame_info_choices[] =
> > +const char *const print_frame_info_choices[] =
> This is public now but I didn't see other uses of it.
It's a left-over from v1 of this series, thanks for catching it.
Christina
Intel Deutschland GmbH
Registered Address: Dornacher Strasse 1, 85622 Feldkirchen, Germany
Tel: +49 89 991 430, www.intel.de
Managing Directors: Harry Demas, Jeffrey Schneiderman, Yin Chong Sorrell
Chairperson of the Supervisory Board: Nicole Lau
Registered Seat: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928
next prev parent reply other threads:[~2026-04-09 16:49 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-23 8:05 [PATCH v2 0/9] Add new command " Christina Schimpe
2026-01-23 8:05 ` [PATCH v2 1/9] gdb: Generalize handling of the shadow stack pointer Christina Schimpe
2026-02-19 17:55 ` Tom Tromey
2026-02-27 18:09 ` Schimpe, Christina
2026-02-27 18:26 ` Tom Tromey
2026-03-02 11:53 ` Schimpe, Christina
2026-04-09 9:49 ` Schimpe, Christina
2026-04-14 17:34 ` Tom Tromey
2026-04-15 7:35 ` Schimpe, Christina
2026-04-15 15:54 ` Tom Tromey
2026-02-27 22:54 ` Thiago Jung Bauermann
2026-03-06 3:15 ` Thiago Jung Bauermann
2026-03-06 3:57 ` Thiago Jung Bauermann
2026-04-09 11:57 ` Schimpe, Christina
2026-04-10 5:03 ` Thiago Jung Bauermann
2026-04-10 7:53 ` Schimpe, Christina
2026-04-09 12:06 ` Schimpe, Christina
2026-04-10 5:05 ` Thiago Jung Bauermann
2026-01-23 8:05 ` [PATCH v2 2/9] gdb: Refactor 'stack.c:print_frame' Christina Schimpe
2026-01-23 8:05 ` [PATCH v2 3/9] gdb: Introduce 'stack.c:print_pc' function without frame argument Christina Schimpe
2026-01-23 8:05 ` [PATCH v2 4/9] gdb: Refactor 'find_symbol_funname' and 'info_frame_command_core' in stack.c Christina Schimpe
2026-02-19 17:32 ` Tom Tromey
2026-04-09 12:40 ` Schimpe, Christina
2026-01-23 8:05 ` [PATCH v2 5/9] gdb: Refactor 'stack.c:print_frame_info' Christina Schimpe
2026-01-23 8:05 ` [PATCH v2 6/9] gdb: Add command option 'bt -shadow' to print the shadow stack backtrace Christina Schimpe
2026-01-23 8:52 ` Eli Zaretskii
2026-02-13 16:42 ` Schimpe, Christina
2026-04-14 8:43 ` Schimpe, Christina
2026-04-14 11:53 ` Eli Zaretskii
2026-04-14 13:28 ` Schimpe, Christina
2026-04-14 14:12 ` Eli Zaretskii
2026-04-14 15:05 ` Schimpe, Christina
2026-02-19 18:19 ` Tom Tromey
2026-04-09 16:48 ` Schimpe, Christina [this message]
2026-03-06 4:31 ` Thiago Jung Bauermann
2026-03-06 9:39 ` Schimpe, Christina
2026-04-09 15:12 ` Schimpe, Christina
2026-04-10 6:21 ` Thiago Jung Bauermann
2026-04-10 12:12 ` Schimpe, Christina
2026-01-23 8:05 ` [PATCH v2 7/9] gdb: Provide gdbarch hook to distinguish shadow stack backtrace elements Christina Schimpe
2026-01-23 8:47 ` Eli Zaretskii
2026-02-19 17:41 ` Tom Tromey
2026-01-23 8:05 ` [PATCH v2 8/9] gdb: Implement the hook 'is_no_return_shadow_stack_address' for amd64 linux Christina Schimpe
2026-02-19 17:43 ` Tom Tromey
2026-01-23 8:05 ` [PATCH v2 9/9] gdb, mi: Add -shadow-stack-list-frames command Christina Schimpe
2026-01-23 8:46 ` Eli Zaretskii
2026-02-13 19:17 ` Schimpe, Christina
2026-02-19 18:26 ` Tom Tromey
2026-03-02 12:39 ` [PATCH v2 0/9] Add new command to print the shadow stack backtrace Schimpe, Christina
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=SN7PR11MB76380E7D65B70C16DAA260BFF9582@SN7PR11MB7638.namprd11.prod.outlook.com \
--to=christina.schimpe@intel.com \
--cc=gdb-patches@sourceware.org \
--cc=thiago.bauermann@linaro.org \
--cc=tom@tromey.com \
/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