From: "Joos, Christina" <christina.joos@intel.com>
To: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Cc: "tom@tromey.com" <tom@tromey.com>,
"thiago.bauermann@linaro.org" <thiago.bauermann@linaro.org>
Subject: RE:[PATCH v4 00/13] Add new command to print the shadow stack backtrace
Date: Tue, 4 Aug 2026 07:45:46 +0000 [thread overview]
Message-ID: <SN7PR11MB763859596BA62A5C7E8E1B7389D42@SN7PR11MB7638.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20260708143639.2214689-1-christina.schimpe@intel.com>
Hi all,
I wanted to give you a heads-up that I will be out for at least half a year for personal reasons starting around late October.
Maybe there is still a chance to get the series in before I leave.
Kind Regards,
Christina
> -----Original Message-----
> From: Christina Schimpe <christina.schimpe@intel.com>
> Sent: Mittwoch, 8. Juli 2026 16:36
> To: gdb-patches@sourceware.org
> Cc: tom@tromey.com; thiago.bauermann@linaro.org
> Subject: [PATCH v4 00/13] Add new command to print the shadow stack
> backtrace
>
> Hi all,
>
> this is my v4 of the series
> "Add new command to print the shadow stack backtrace".
>
> ***Diff of v4 to v3***:
>
> - Minor fixup for ARM compilation
> - The commit
> "gdb: Provide gdbarch hook to distinguish shadow stack backtrace elements."
> was accidentially merged into the previous one
> ("gdb: Add command option 'bt -shadow' to print the shadow stack
> backtrace.").
> Isolate it again.
>
> Other than that, I am keeping the full cover letter summarizing the changes for v3
> (diff of v3 to v2). It has not been reviewed yet, since I posted it just a couple days
> ago.
>
> ***Diff of v3 to v2***:
>
> It now includes:
> - the implementation of the -past-main command line option
> - support for inferior calls
> (printing of <function called from gdb> instead of the shadow stack element)
> - full support for signals
> (printing of <signal handler called> instead of the shadow stack element)
>
> Due to this some larger refactoring was required; I summarized it here:
> https://sourceware.org/pipermail/gdb-patches/2026-May/227481.html
>
> The refactoring mostly affected the following commits:
> "gdb: Provide gdbarch hook to distinguish shadow stack backtrace elements."
> "gdb: Add command option 'bt -shadow' to print the shadow stack backtrace."
> "gdb: Implement the hook 'is_no_return_shadow_stack_address' for amd64
> linux."
> I did not add any Reviewed-By or Approved-By tags for the 3 commits, since they
> changed significantly.
>
> Furthermore, I addressed (hopefully all) the comments of Tom, Thiago and Eli:
> - Remove annotations
> - Some better code reuse (especially for the mi patch)
> - A new patch "aarch64: Implement gdbarch function
> top_addr_empty_shadow_stack."
> This also allows to remove some target dependent GCS code in aarch64-*.c
> - Various smaller issues and nits
> - Fixes for check-gdbarch.py
>
> And finally some smaller issues I noted myself (mostly for patch #1
> "gdb: Generalize handling of the shadow stack pointer."):
> - Remove unused gdbarch parameter in some of the introduced hooks
> - Changes in gdb/aarch64-tdep.c when calling shadow_stack_push, since some
> code for getting the shadow stack pointer and checking the enablement state was
> duplicated.
>
> Opens:
> 1) Thiago suggested changing the frame numbering so that it always starts at #1,
> since for the shadow stack we don't have frame #0 printed by the normal
> backtrace.
> 2) Or, consider printing frame #0 similarly to what the normal backtrace does
> 3) Consider printing frame arguments (but I believe, if possible, this should better
> be added in a follow-up series)
> 4) Show the selected frame, for details see here:
> https://sourceware.org/pipermail/gdb-patches/2026-June/227720.html
>
> This is an example for the output of 'bt -shadow' on amd64 linux:
> ~~~
> (gdb) bt -shadow
> #0 0x000055555555514a in call1 at amd64-shadow-stack.c:27
> #1 0x000055555555515f in main at amd64-shadow-stack.c:38 ~~~
>
> Note that the normal backtrace includes one additional frame, since the shadow
> stack backtrace relies on return addresses of the shadow stack only. But except
> the missing frame arguments and frame #0 of the normal backtrace, the
> backtrace is the same.
> ~~~
> (gdb) bt
> #0 call2 () at amd64-shadow-stack.c:21
> #1 0x000055555555514a in call1 () at amd64-shadow-stack.c:27
> #2 0x000055555555515f in main () at amd64-shadow-stack.c:38 ~~~
>
> I am happy about your feedback!
>
> Christina
>
> v3: https://sourceware.org/pipermail/gdb-patches/2026-July/228440.html
> v2: https://sourceware.org/pipermail/gdb-patches/2026-January/224388.html
> v1: https://sourceware.org/pipermail/gdb-patches/2025-
> September/221141.html
>
> Christina Schimpe (13):
> gdb: Generalize handling of the shadow stack pointer.
> aarch64: Implement gdbarch function top_addr_empty_shadow_stack.
> gdb: Add get_main_func_start_pc to refactor frame.c:inside_main_func.
> gdb: Refactor 'stack.c:print_frame'.
> gdb: Introduce 'stack.c:print_pc' function without frame argument.
> gdb: Refactor 'find_symbol_funname' and 'info_frame_command_core' in
> stack.c.
> gdb: Refactor 'stack.c:print_frame_info'.
> gdb: Add command option 'bt -shadow' to print the shadow stack
> backtrace.
> gdb: Provide gdbarch hook to distinguish shadow stack backtrace
> elements.
> gdb: Implement the hook 'is_no_return_shadow_stack_address' for amd64
> linux.
> gdb: Enable inferior calls in the shadow stack backtrace.
> gdb: Enable signal trampolines in the shadow stack backtrace.
> gdb, mi: Add -shadow-stack-list-frames command
>
> gdb/Makefile.in | 2 +
> gdb/NEWS | 11 +
> gdb/aarch64-linux-tdep.c | 51 +-
> gdb/aarch64-tdep.c | 66 +-
> gdb/amd64-linux-tdep.c | 211 ++---
> gdb/amd64-tdep.c | 22 +
> gdb/doc/gdb.texinfo | 95 +++
> gdb/frame.c | 37 +-
> gdb/frame.h | 6 +
> gdb/gdbarch-gen.c | 190 ++++-
> gdb/gdbarch-gen.h | 95 ++-
> gdb/gdbarch.h | 1 +
> gdb/gdbarch_components.py | 124 ++-
> gdb/infcall.c | 4 +-
> gdb/linux-tdep.c | 9 +-
> gdb/mi/mi-cmd-stack.c | 100 +++
> gdb/mi/mi-cmds.c | 2 +
> gdb/mi/mi-cmds.h | 1 +
> gdb/shadow-stack.c | 769 ++++++++++++++++++
> gdb/shadow-stack.h | 182 +++++
> gdb/stack.c | 319 +++++---
> gdb/stack.h | 43 +
> .../amd64-shadow-stack-backtrace-signal.exp | 49 ++
> .../gdb.arch/amd64-shadow-stack-cmds.exp | 71 ++
> .../gdb.arch/amd64-shadow-stack-signal.c | 31 +
> gdb/testsuite/gdb.base/options.exp | 2 +-
> .../gdb.mi/mi-shadow-stack-signal.exp | 69 ++
> gdb/testsuite/gdb.mi/mi-shadow-stack.exp | 93 +++
> 28 files changed, 2247 insertions(+), 408 deletions(-) create mode 100644
> gdb/shadow-stack.c create mode 100644 gdb/shadow-stack.h create mode
> 100644 gdb/testsuite/gdb.arch/amd64-shadow-stack-backtrace-signal.exp
> create mode 100644 gdb/testsuite/gdb.arch/amd64-shadow-stack-signal.c
> create mode 100644 gdb/testsuite/gdb.mi/mi-shadow-stack-signal.exp
> create mode 100644 gdb/testsuite/gdb.mi/mi-shadow-stack.exp
>
> --
> 2.34.1
>
> 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
>
________________________________________
Intel Deutschland GmbH
Registered Address: Dornacher Strasse 1, 85622 Feldkirchen, Germany
Tel: +49 (89) 99143-0
www.intel.de
Managing Directors: Candice Moore, Jeffrey Schneiderman, Ramachandran Sitaraman
Chairperson of the Supervisory Board: Sonja Pierer
Registered Seat: Munich Commercial Register B: Amtsgericht Munich HRB 186928
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
prev parent reply other threads:[~2026-08-04 7:46 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-08 14:36 [PATCH " Christina Schimpe
2026-07-08 14:36 ` [PATCH v4 01/13] gdb: Generalize handling of the shadow stack pointer Christina Schimpe
2026-07-08 14:36 ` [PATCH v4 02/13] aarch64: Implement gdbarch function top_addr_empty_shadow_stack Christina Schimpe
2026-08-12 22:13 ` Luis
2026-08-25 9:01 ` Joos, Christina
2026-08-29 5:24 ` Thiago Jung Bauermann
2026-07-08 14:36 ` [PATCH v4 03/13] gdb: Add get_main_func_start_pc to refactor frame.c:inside_main_func Christina Schimpe
2026-07-08 14:36 ` [PATCH v4 04/13] gdb: Refactor 'stack.c:print_frame' Christina Schimpe
2026-07-08 14:36 ` [PATCH v4 05/13] gdb: Introduce 'stack.c:print_pc' function without frame argument Christina Schimpe
2026-07-08 14:36 ` [PATCH v4 06/13] gdb: Refactor 'find_symbol_funname' and 'info_frame_command_core' in stack.c Christina Schimpe
2026-07-08 14:36 ` [PATCH v4 07/13] gdb: Refactor 'stack.c:print_frame_info' Christina Schimpe
2026-07-08 14:36 ` [PATCH v4 08/13] gdb: Add command option 'bt -shadow' to print the shadow stack backtrace Christina Schimpe
2026-07-08 14:36 ` [PATCH v4 09/13] gdb: Provide gdbarch hook to distinguish shadow stack backtrace elements Christina Schimpe
2026-07-08 14:36 ` [PATCH v4 10/13] gdb: Implement the hook 'is_no_return_shadow_stack_address' for amd64 linux Christina Schimpe
2026-07-08 14:36 ` [PATCH v4 11/13] gdb: Enable inferior calls in the shadow stack backtrace Christina Schimpe
2026-07-08 14:36 ` [PATCH v4 12/13] gdb: Enable signal trampolines " Christina Schimpe
2026-07-08 14:36 ` [PATCH v4 13/13] gdb, mi: Add -shadow-stack-list-frames command Christina Schimpe
2026-08-04 7:45 ` Joos, Christina [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=SN7PR11MB763859596BA62A5C7E8E1B7389D42@SN7PR11MB7638.namprd11.prod.outlook.com \
--to=christina.joos@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