From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7850) id 33C98383554E; Sat, 17 Dec 2022 06:20:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 33C98383554E Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Indu Bhagat To: bfd-cvs@sourceware.org, gdb-cvs@sourceware.org Subject: [binutils-gdb] objdump/readelf: sframe: emit marker for FREs with mangled RA X-Act-Checkin: binutils-gdb X-Git-Author: Indu Bhagat X-Git-Refname: refs/heads/master X-Git-Oldrev: 9c4b163cb546f0627a4d3106d2750db37d6aed50 X-Git-Newrev: 49948bce0e9e310ea1506e84755a1cf9fdba8840 Message-Id: <20221217062032.33C98383554E@sourceware.org> Date: Sat, 17 Dec 2022 06:20:32 +0000 (GMT) X-BeenThere: binutils-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Dec 2022 06:20:32 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D49948bce0e9e= 310ea1506e84755a1cf9fdba8840 commit 49948bce0e9e310ea1506e84755a1cf9fdba8840 Author: Indu Bhagat Date: Fri Dec 16 22:02:02 2022 -0800 objdump/readelf: sframe: emit marker for FREs with mangled RA =20 In the textual dump of the SFrame section, when an SFrame FRE recovers a mangled RA, use string "[s]" in the output to indicate that the return address is a signed (mangled) one. =20 ChangeLog: =20 * libsframe/sframe-dump.c (dump_sframe_func_with_fres): Postfix with "[s]" if RA is signed with authorization code. Diff: --- libsframe/sframe-dump.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libsframe/sframe-dump.c b/libsframe/sframe-dump.c index 5b063c9962d..5f778bee338 100644 --- a/libsframe/sframe-dump.c +++ b/libsframe/sframe-dump.c @@ -116,7 +116,7 @@ dump_sframe_func_with_fres (sframe_decoder_ctx *sfd_ctx, char temp[100]; memset (temp, 0, 100); =20 - printf ("\n %-7s%-8s %-10s%-10s%-10s", "STARTPC", fde_type_marker, "C= FA", "FP", "RA"); + printf ("\n %-7s%-8s %-10s%-10s%-13s", "STARTPC", fde_type_marker, "C= FA", "FP", "RA"); for (j =3D 0; j < num_fres; j++) { sframe_decoder_get_fre (sfd_ctx, funcidx, j, &fre); @@ -152,7 +152,14 @@ dump_sframe_func_with_fres (sframe_decoder_ctx *sfd_ct= x, sprintf (temp, "c%+d", ra_offset); else strcpy (temp, "u"); - printf ("%-10s", temp); + /* Mark SFrame FRE's RA information with "[s]" if the RA is mangled + with signature bits. */ + const char *ra_mangled_p_str + =3D ((sframe_fre_get_ra_mangled_p (sfd_ctx, &fre, &err[2])) + ? "[s]" : " "); + size_t ra_mangled_p_str_size =3D strlen (ra_mangled_p_str); + strncat (temp, ra_mangled_p_str, ra_mangled_p_str_size); + printf ("%-13s", temp); } }