Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: "Schimpe, Christina" <christina.schimpe@intel.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>,
	"Thiago Jung Bauermann" <thiago.bauermann@linaro.org>
Subject: RE: [PATCH 6/9] gdb: Implement 'bt shadow' to print the shadow stack backtrace.
Date: Thu, 25 Sep 2025 11:06:32 +0000	[thread overview]
Message-ID: <SN7PR11MB76386C4E9A1F42DA9BE58EDEF91FA@SN7PR11MB7638.namprd11.prod.outlook.com> (raw)
In-Reply-To: <86y0q5crwq.fsf@gnu.org>

Hi Eli, 

Thanks for the quick feedback! Please find my comments below.

> -----Original Message-----
> From: Eli Zaretskii <eliz@gnu.org>
> Sent: Tuesday, September 23, 2025 1:47 PM
> To: Schimpe, Christina <christina.schimpe@intel.com>
> Cc: gdb-patches@sourceware.org
> Subject: Re: [PATCH 6/9] gdb: Implement 'bt shadow' to print the shadow
> stack backtrace.
> 
> > From: Christina Schimpe <christina.schimpe@intel.com>
> > Date: Tue, 23 Sep 2025 11:18:39 +0000
> >
> > Add a subcommand 'bt shadow' for the ordinary backtrace command which
> > prints the shadow stack backtrace.
> > Similar to the ordinary backtrace command 'bt shadow' can be
> > configured using COUNT and the command line option -frame-info.
> > However, we always print the address and the command is not affected
> > by the setting "print address" as well as the setting "print frame-info
> location-and-address".
> > Also we do not print the frame arguments.
> >
> > Usage: backtrace|bt shadow [OPTION]... [COUNT | -COUNT]
> >
> > Help output:
> > ~~
> > (gdb) help bt shadow
> > Print backtrace of all shadow stack frames, or innermost COUNT frames.
> > Usage: backtrace shadow [OPTION]... [COUNT | -COUNT]
> 
> Thanks, but I wonder if this UI is the best we can come up with.
> The "backtrace" command doesn't currently have non-option arguments
> except COUNT. 

Hm, not sure if I fully understand what you mean by non-option arguments.
"bt shadow" does not introduce more non-option arguments, except if you say
that "shadow" itself is interpreted as "non-option" argument.

> We have just got rid of qualifier arguments like "full"
> and "hide".  Instead of introducing qualifier arguments anew, why not go the
> way of thread-related commands and add a new command "shadow", so the
> user could say "shadow backtrace" and maybe in the future also other sub-
> commands?

This has been discussed in a thread years ago:
https://sourceware.org/pipermail/gdb/2023-December/051024.html
The direction was to make it part of the ordinary bt command. 

Currently, we don't plan any further commands for the shadow stack. But
maybe for ARM's Guarded Control Stack any further options are planned?
I added Thiago in cc here. Maybe he has some more input.

> Also, a question: can I say something like "thread apply 1-10 bt shadow"?

Yes, this is possible:
~~~
(gdb) thread apply all bt shadow

Thread 2.1 (Thread 0x7ffff7fae740 (LWP 403202) "sample"):
#0  0x00007ffff7c2a1ca in __libc_start_call_main at ../sysdeps/nptl/libc_start_call_main.h:74
#1  0x00007ffff7c2a28b in __libc_start_main_impl at ../csu/libc-start.c:128
#2  0x0000555555555065 in _start

Thread 1.1 (Thread 0x7ffff7fae740 (LWP 403193) "sample"):
#0  0x00007ffff7c2a1ca in __libc_start_call_main at ../sysdeps/nptl/libc_start_call_main.h:74
#1  0x00007ffff7c2a28b in __libc_start_main_impl at ../csu/libc-start.c:128
#2  0x0000555555555065 in _start
~~~

> > +* New commands
> > +
> > +backtrace shadow [option]... [count | -count] bt shadow [option]...
> > +[count | -count]
> > +  Print backtrace of all shadow stack frames, or innermost 'count' frames.
> > +  The command is a subcommand of the ordinary backtrace command.
> > +
> >  *** Changes in GDB 17
> 
> This part is okay (subject to the general comment above).
> 
> > +This is how a shadow stack backtrace looks like on amd64:
> > +@smallexample
> > +@group
> > +#0  0x000000000040111f in call1 at amd64-shadow-stack.c:14
> > +#1  0x000000000040112f in main at amd64-shadow-stack.c:21
> > +#2  0x00007ffff7c3fe70 in __libc_start_call_main at
> > +../sysdeps/nptl/libc_start_call_main.h:58
> 
> This line is too long.  Since this is just an example, I suggest to make it artificially
> shorter by editing the names of the functions and file names.

I agree and will fix. 

Kind Regards
Christina

> Reviewed-By: Eli Zaretskii <eliz@gnu.org>
Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Sean Fennelly, Jeffrey Schneiderman, Tiffany Doon Silva
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928


  reply	other threads:[~2025-09-25 11:07 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-23 11:18 [PATCH 0/9] Add new command " Christina Schimpe
2025-09-23 11:18 ` [PATCH 1/9] gdb: Generalize handling of the shadow stack pointer Christina Schimpe
2025-10-31  1:31   ` Thiago Jung Bauermann
2025-11-17 11:18     ` Schimpe, Christina
2025-11-26  4:19       ` Thiago Jung Bauermann
2025-12-30 10:39         ` Schimpe, Christina
2025-09-23 11:18 ` [PATCH 2/9] gdb: Refactor 'stack.c:print_frame' Christina Schimpe
2025-10-03 20:05   ` Tom Tromey
2025-09-23 11:18 ` [PATCH 3/9] gdb: Introduce 'stack.c:print_pc' function without frame argument Christina Schimpe
2025-10-03 19:56   ` Tom Tromey
2025-09-23 11:18 ` [PATCH 4/9] gdb: Refactor 'find_symbol_funname' and 'info_frame_command_core' in stack.c Christina Schimpe
2025-10-03 19:55   ` Tom Tromey
2025-09-23 11:18 ` [PATCH 5/9] gdb: Refactor 'stack.c:print_frame_info' Christina Schimpe
2025-10-03 20:03   ` Tom Tromey
2025-09-23 11:18 ` [PATCH 6/9] gdb: Implement 'bt shadow' to print the shadow stack backtrace Christina Schimpe
2025-09-23 11:47   ` Eli Zaretskii
2025-09-25 11:06     ` Schimpe, Christina [this message]
2025-09-25 13:19       ` Eli Zaretskii
2025-09-25 14:58         ` Simon Marchi
2025-09-26  7:45           ` Schimpe, Christina
2025-10-29 15:05             ` Schimpe, Christina
2025-10-29 15:28               ` Guinevere Larsen
2025-11-03 19:47                 ` Schimpe, Christina
2025-11-04 11:53                   ` Guinevere Larsen
2025-11-05 16:33                     ` Schimpe, Christina
2025-10-13  1:17       ` Thiago Jung Bauermann
2025-10-13  7:19         ` Schimpe, Christina
2025-10-31  4:39           ` Thiago Jung Bauermann
2025-11-06 14:23             ` Schimpe, Christina
2025-10-03 20:15   ` Tom Tromey
2025-10-12 19:45     ` Schimpe, Christina
2026-02-19 17:24       ` Tom Tromey
2026-03-02 12:24         ` Schimpe, Christina
2025-10-31  4:02   ` Thiago Jung Bauermann
2025-11-17 20:14     ` Schimpe, Christina
2025-11-26  4:07       ` Thiago Jung Bauermann
2025-11-26 16:29         ` Thiago Jung Bauermann
2026-01-22 17:04           ` Schimpe, Christina
2026-03-06  2:35             ` Thiago Jung Bauermann
2026-01-15 14:05         ` Schimpe, Christina
2025-09-23 11:18 ` [PATCH 7/9] gdb: Provide gdbarch hook to distinguish shadow stack backtrace elements Christina Schimpe
2025-09-23 11:49   ` Eli Zaretskii
2025-09-25 11:10     ` Schimpe, Christina
2025-11-02 21:20       ` Thiago Jung Bauermann
2025-11-12 17:28         ` Schimpe, Christina
2025-11-16 18:39           ` Thiago Jung Bauermann
2025-11-17 11:51             ` Schimpe, Christina
2025-09-23 11:18 ` [PATCH 8/9] gdb: Implement the hook 'is_no_return_shadow_stack_address' for amd64 linux Christina Schimpe
2025-11-26  4:22   ` Thiago Jung Bauermann
2025-09-23 11:18 ` [PATCH 9/9] gdb, mi: Add -shadow-stack-list-frames command Christina Schimpe
2025-09-23 11:53   ` Eli Zaretskii
2025-09-25 11:32     ` Schimpe, Christina
2025-10-03 20:17   ` Tom Tromey
2025-10-12 19:54     ` Schimpe, Christina
2025-10-13  0:06       ` Thiago Jung Bauermann
2025-11-26  4:26   ` Thiago Jung Bauermann
2026-01-22 17:01     ` Schimpe, Christina
2026-03-06  2:44       ` Thiago Jung Bauermann
2025-09-25 11:46 ` [PATCH 0/9] Add new command to print the shadow stack backtrace Schimpe, Christina
2025-10-08  1:46   ` Thiago Jung Bauermann
2025-10-13  1:18     ` Thiago Jung Bauermann
2025-10-13  6:34       ` Schimpe, Christina
2025-10-29 14:52         ` Schimpe, Christina
2025-10-31  0:47           ` Thiago Jung Bauermann
2025-12-30 10:16             ` Schimpe, Christina
2026-03-06  2:30               ` Thiago Jung Bauermann
2026-03-12  9:53                 ` 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=SN7PR11MB76386C4E9A1F42DA9BE58EDEF91FA@SN7PR11MB7638.namprd11.prod.outlook.com \
    --to=christina.schimpe@intel.com \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=thiago.bauermann@linaro.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