From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id BLmFHPzsiWjz7T8AWB0awg (envelope-from ) for ; Wed, 30 Jul 2025 05:59:24 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=Z07vf6RQ; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 554951E102; Wed, 30 Jul 2025 05:59:24 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-10.1 required=5.0 tests=ARC_SIGNED,ARC_VALID, BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED, RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE autolearn=ham autolearn_force=no version=4.0.1 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id E96481E091 for ; Wed, 30 Jul 2025 05:59:16 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8122F3858C42 for ; Wed, 30 Jul 2025 09:59:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8122F3858C42 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=Z07vf6RQ Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTP id 885123858C51 for ; Wed, 30 Jul 2025 09:58:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 885123858C51 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 885123858C51 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1753869527; cv=none; b=cQ0gPbcUP7Ga9MbofDc/2kpn94Ha309PicCwGv0nr8Mc3R6sJYw8pRKrM7BkeVnfW1RkSy/oP/HDLPEaPKGFGWwQwUGVHLLLQ163Ma6ZcSnoWT5adPDlJZjFkz1tMYxokKklVgGNFfoROWs2OQXaNbzRNf/bLnXcplywyb9sFK4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1753869527; c=relaxed/simple; bh=rPFXOEpXNRdsNM7Gtbq8SQReFabcaahqsa5evZz8yHk=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=dO1ReobhWGbBgAiO/s9VXPW+8CEJpjEwRzD4NyhIBHeVlNGGsiEsQQOpqwb2rIiOnF6C3z7DQ7PAXz4tWAnONCo7YRBGdiItytbtwvbUr9OBq2JxlJvYH/5RHgIxsurvANe/K6vaRjXk6+Tv9HvrvgUhii5miAHiffE6dKyEZLE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 885123858C51 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1753869527; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=N6n/+S2Do/JtdkuZT79K2rKHqHavsYx+hEEUWtKHItI=; b=Z07vf6RQVcQyBObxxorZoBwtoq1Pgh/tCowkrQZYKOAzvxD833r580niVdTasbQ3QF8Zz/ KdRM+FOzHlygEC9P3b5cDlzAGMwsiGWi29eCjzAQI7c0DwR+LAlyqjZ99hOT3vUa9HLA3E KLfZFU9TCetJSgILgSqOLj/7/h2e9sA= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-517-r3Xm4H-KPQ6eEoU9h8LGdA-1; Wed, 30 Jul 2025 05:58:45 -0400 X-MC-Unique: r3Xm4H-KPQ6eEoU9h8LGdA-1 X-Mimecast-MFC-AGG-ID: r3Xm4H-KPQ6eEoU9h8LGdA_1753869524 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-456175dba68so39648075e9.2 for ; Wed, 30 Jul 2025 02:58:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753869524; x=1754474324; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=N6n/+S2Do/JtdkuZT79K2rKHqHavsYx+hEEUWtKHItI=; b=l2IRVNPpLKRcaSYtapU+g+kSw4izWUymtuhNQkACbacyI0XR1mPQX74Z8LsocdLr3Z NZWxzg/utM5ePSzpW/U4h0kZxObnzitMcTVX5ah3rczq4tDCNS5dR4pA531t+H4OGEQq 3zW2OqMpwtUfxMwgGhUnpoAU+kP7rgzRJJR/bv4WP9TJ8XoD3rIbT861OveAN82d+oCk eMqnoZI5vZ7adaHzblZQ4+X745bMs5qd4Xup/MI2BSGH6OfJ1OW0CMpWYXkq+1sf4a5T jd6hTZvCNQ1mWUZsR8hwQeb4gHRk4IXckTLtb8YKt0i9e/oisun+nklnLotuGwbNITi3 pvpw== X-Forwarded-Encrypted: i=1; AJvYcCWnPb3Un3Khy3LcmPBnupjFnkuPga8WSxLLOXVojoqofuVS1gFGAlVCQqeVyqY7UmuAz0t+G5GVMpyZug==@sourceware.org X-Gm-Message-State: AOJu0YyJSJn+VovJRzbjx6Yqi0IOtSq1aR29Mm0rxpj1c7XJws54FtTK LvHiuskeE86eQ2y1g5fXZDKNKv20AGMf4BvONt6XqmRVfACbGkpe1iF5zdK63OArVPIZScsOicg apmRc2blUIpnRiwFhG21Vf3zONtW8ZeGqZd2klSyANwLVW3G8QqK7f6jn6GMzog4= X-Gm-Gg: ASbGncubeax1pz5EqV9FYWCTPbSjetXxofsaeLfvBTU7FQFfBJCh+P3x1LLJKB7WvZy 2UQVzzBAZOhcucWfCm0d3P9gRuYOxwVGXA9KzbXz3CEB2UmW9oZtnowhCPwD1eYHwW8eYmlhmvN dRAX88Bn7AzwlUgQ8z+nlahxGllrQpBX4hTFMNhgzq7k/h86JdV/7MX4CWKwgm2zUOg4Ngf3UIE bPbdT8+NvVhiC56gcKrITM2Hkmbzv8WlNnaGgVM3qC42z+Mkz7uCJ3k+gZv77u1M8HA6Gdm8qSs GtsaUtTD+hw6qmJR1IPWYpuvkr3nERm7pcCTsUpQDceVVov7xVgK5wPCW2a03Q== X-Received: by 2002:a05:600c:1e12:b0:453:6ca:16b1 with SMTP id 5b1f17b1804b1-45892bde4f2mr22943305e9.26.1753869524202; Wed, 30 Jul 2025 02:58:44 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGqeS5qbIFllYt+wRdDiM5RgCVdoPwPq9uj/5DAHxqJj42IZT9w0Nt4kb1SynunYPsmRcgcPg== X-Received: by 2002:a05:600c:1e12:b0:453:6ca:16b1 with SMTP id 5b1f17b1804b1-45892bde4f2mr22943105e9.26.1753869523780; Wed, 30 Jul 2025 02:58:43 -0700 (PDT) Received: from localhost (120.81.93.209.dyn.plus.net. [209.93.81.120]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-458953cfd10sm21571215e9.21.2025.07.30.02.58.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Jul 2025 02:58:43 -0700 (PDT) From: Andrew Burgess To: Christina Schimpe , gdb-patches@sourceware.org Cc: thiago.bauermann@linaro.org, luis.machado@arm.com Subject: Re: [PATCH v5 08/12] gdb: Handle shadow stack pointer register unwinding for amd64 linux. In-Reply-To: <20250628082810.332526-9-christina.schimpe@intel.com> References: <20250628082810.332526-1-christina.schimpe@intel.com> <20250628082810.332526-9-christina.schimpe@intel.com> Date: Wed, 30 Jul 2025 10:58:42 +0100 Message-ID: <87ldo6c84t.fsf@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 8GQeGLyuBAovllAUCjFBlpmHxdXndTFzY-m6KD4v1h4_1753869524 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org Christina Schimpe writes: > Unwind the $pl3_ssp register. > We now have an updated value for the shadow stack pointer when > moving up or down the frame level. Note that $pl3_ssp can > become unavailable when moving to a frame before the shadow > stack enablement. In the example below, shadow stack is enabled > in the function 'call1'. Thus, when moving to a frame level above > the function, $pl3_ssp will become unavaiable. > Following the restriction of the linux kernel, implement the unwinding > for amd64 linux only. > > Before this patch: > ~~~ > Breakpoint 1, call2 (j=3) at sample.c:44 > 44 return 42; > (gdb) p $pl3_ssp > $1 = (void *) 0x7ffff79ffff8 > (gdb) up > 55 call2 (3); > (gdb) p $pl3_ssp > $2 = (void *) 0x7ffff79ffff8 > (gdb) up > 68 call1 (43); > (gdb) p $pl3_ssp > $3 = (void *) 0x7ffff79ffff8 > ~~~ > > After this patch: > ~~~ > Breakpoint 1, call2 (j=3) at sample.c:44 > 44 return 42; > (gdb) p $pl3_ssp > $1 = (void *) 0x7ffff79ffff8 > (gdb) up > 55 call2 (3); > (gdb) p $pl3_ssp > $2 = (void *) 0x7ffff7a00000 > (gdb) up > 68 call1 (43i); > (gdb) p $pl3_ssp > $3 = > ~~~ > > As we now have an updated value for each selected frame, the > return command is now enabled for shadow stack enabled programs, too. > > We therefore add a test for the return command and shadow stack support, > and for an updated shadow stack pointer after a frame level change. > > Reviewed-by: Thiago Jung Bauermann > Reviewed-By: Luis Machado > --- > gdb/amd64-linux-tdep.c | 85 ++++++++++++++++++ > gdb/linux-tdep.c | 47 ++++++++++ > gdb/linux-tdep.h | 7 ++ > .../gdb.arch/amd64-shadow-stack-cmds.exp | 88 +++++++++++++++++++ > gdb/testsuite/gdb.arch/amd64-shadow-stack.c | 13 +++ > 5 files changed, 240 insertions(+) > create mode 100644 gdb/testsuite/gdb.arch/amd64-shadow-stack-cmds.exp > > diff --git a/gdb/testsuite/gdb.arch/amd64-shadow-stack-cmds.exp b/gdb/testsuite/gdb.arch/amd64-shadow-stack-cmds.exp > new file mode 100644 > index 00000000000..17f32ce3964 > --- /dev/null > +++ b/gdb/testsuite/gdb.arch/amd64-shadow-stack-cmds.exp > @@ -0,0 +1,88 @@ > +# Copyright 2018-2024 Free Software Foundation, Inc. Is this date range correct? Or a copy & paste error? The start date should be when the patches were first posted to the list, or otherwise made publicly available (e.g. Intel specific GDB release?). The end date should be updated to 2025. With that fixed: Approved-By: Andrew Burgess Thanks, Andrew > + > +# This program is free software; you can redistribute it and/or modify > +# it under the terms of the GNU General Public License as published by > +# the Free Software Foundation; either version 3 of the License, or > +# (at your option) any later version. > +#