From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2077.outbound.protection.outlook.com [40.107.105.77]) by sourceware.org (Postfix) with ESMTPS id 82D103858D32 for ; Mon, 23 Jan 2023 09:55:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 82D103858D32 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=k0+WfBkhxDenwq3SB2cTwtFjOnPpV4oH3OZ5syxBMjo=; b=GUBZT8m00urrtqDAatUSA7wFLM9gVD/yCK3uu6QKqX4trJuOxohJd/CC0/o7MT60r0BUymsiDD1+z4yC/PBgSaUkN8QNGgWK9lm2Viww/Un31hvHdI9NYv96ANinvmfcvYJaUBhi8OepbMRgX4n62Bw8OvfOWEPtZVsI8nEMaac= Received: from AS9PR06CA0241.eurprd06.prod.outlook.com (2603:10a6:20b:45f::20) by PA4PR08MB5952.eurprd08.prod.outlook.com (2603:10a6:102:e9::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.33; Mon, 23 Jan 2023 09:55:20 +0000 Received: from AM7EUR03FT036.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:45f:cafe::47) by AS9PR06CA0241.outlook.office365.com (2603:10a6:20b:45f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.33 via Frontend Transport; Mon, 23 Jan 2023 09:55:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT036.mail.protection.outlook.com (100.127.140.93) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6023.16 via Frontend Transport; Mon, 23 Jan 2023 09:55:20 +0000 Received: ("Tessian outbound 6e565e48ed4a:v132"); Mon, 23 Jan 2023 09:55:19 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 7e31cf31b66948ca X-CR-MTA-TID: 64aa7808 Received: from d6bad0045fb8.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id D4A1CE60-C4AF-4685-A869-2113779DE98A.1; Mon, 23 Jan 2023 09:55:13 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d6bad0045fb8.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 23 Jan 2023 09:55:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YWKHtP/Bxx/QxMScdUnaWqtOBxOSE97REiRRazW7d8XNf1+0q8L9obC7b99VGkphQ7rj8jWRuBEZ0GN1bDdZzfDnwADJAUjAJJ3U89TQvqnC4Z6JJyHaJo/89KgaRy8ksml85h5uwaCyzWPktQLPkktA33hequ/UY2MlY+O38Vnzp0ioEHg94aDmz9nBv38+soMKAM2bECkNn8j7fNnLQT8bOPJTaQdjGdk+w2itSbjToxtSy4n9u45rHl3UB+VwaZNlx2hOInqp0blMnF93v7F+VQ5QV7LWc2Yh8CEYsUcl4+hEZ1pXv8GZ6d3bc6kis/pu4IICwV6fWg/DagBJWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=k0+WfBkhxDenwq3SB2cTwtFjOnPpV4oH3OZ5syxBMjo=; b=l2XU6LFJY9z0i6raWA9BprqCjbAFYNdzdjipsMdpLdU2DpQGFPCYWUoHRS3hhsBaMm0seNP5sqXkIRvmOiId1zq2xJAGDVSAsQ1iWsAN27zg4+N7Bjh67pzbs2r1F4a7DKJ7qZGPUWvinXuiA4Q9C82OHgtJTW0jC77Swg3srIZfucI+686eJ+k1Gpw9W5jL4O47SCPBNo+MVN8NIAAccYxlhwIKVZjJCHLfU8XjDBAISYFJyQr5N4RNiOynzjhhREpDbPDKioYl/lt5w9UE5ifceftIeeSwNZjNvKwAQyzc/JzfJjhLjj+wpnEpcHw837UQieyV6vZlU5xbm6U2Aw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=k0+WfBkhxDenwq3SB2cTwtFjOnPpV4oH3OZ5syxBMjo=; b=GUBZT8m00urrtqDAatUSA7wFLM9gVD/yCK3uu6QKqX4trJuOxohJd/CC0/o7MT60r0BUymsiDD1+z4yC/PBgSaUkN8QNGgWK9lm2Viww/Un31hvHdI9NYv96ANinvmfcvYJaUBhi8OepbMRgX4n62Bw8OvfOWEPtZVsI8nEMaac= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from VI1PR08MB3919.eurprd08.prod.outlook.com (2603:10a6:803:c4::31) by GV2PR08MB9301.eurprd08.prod.outlook.com (2603:10a6:150:d4::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.33; Mon, 23 Jan 2023 09:55:11 +0000 Received: from VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::bced:32a3:b77e:90a6]) by VI1PR08MB3919.eurprd08.prod.outlook.com ([fe80::bced:32a3:b77e:90a6%6]) with mapi id 15.20.6002.033; Mon, 23 Jan 2023 09:55:10 +0000 Message-ID: Date: Mon, 23 Jan 2023 09:55:09 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PATCH 2/4] [gdb/testsuite] Improve gdb.base/unwind-on-each-insn.exp Content-Language: en-US To: Tom de Vries , gdb-patches@sourceware.org Cc: Bruno Larsen , Andrew Burgess References: <20230119104618.15503-1-tdevries@suse.de> <20230119104618.15503-3-tdevries@suse.de> From: Luis Machado In-Reply-To: <20230119104618.15503-3-tdevries@suse.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P265CA0070.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2af::10) To VI1PR08MB3919.eurprd08.prod.outlook.com (2603:10a6:803:c4::31) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: VI1PR08MB3919:EE_|GV2PR08MB9301:EE_|AM7EUR03FT036:EE_|PA4PR08MB5952:EE_ X-MS-Office365-Filtering-Correlation-Id: ad398bc1-0eb8-40a1-f3fe-08dafd27f047 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: CAERY3LAYPElz6lERUkszk7H4v5YHcdGC66ppaoHH396TZBUKmsVn2gSGfu/vPkLeNnWYwVgDVdhAEML6+kHhepNTETA818JazKScfP+6ODvToC+SfEcLqiKWqTFZ+NW4mRNPq6Sd3R+JF6fLoj1Ya45rBR0aBbzEUPEjbgWSojzOpTlj4l2Z34YKgpjY+YDq90uT1Xv7ejrytvd3oU118Vs7HK5w9iZtEZKuf82U2RKACzq05qKQHhiurxaPiVorGqsqptWdUnyNTVKlZvPJadE0Q4GxRTmlsOtUr1okbM1TqHW79eJ3YX1C9Ti1RmPq0LHCxyTmzdmOnnh5Kgq/Mhovo27vulcDjX5K8qFcNPd5fYXblt4NvsbrUCFzBCt/NiZjNMDcW7ga/pZSIRppDEjhSIXKawDSreI/h3RGCjaGtULWu1EOhUI7I0bBUmktu78ptcVKW+cKL+aMYAU6Uvtup/aY5Qe/1NJij05yhi+aWgoWKgls0Gix3Z/Ecua1xV95xO4q+NQ+WH26JwM5kS9cEy+Fwz8ObmvrhILjKzcuo+ryFCtGNPliopDheU1I9PWMte5d0tQ9E6gWiAENsf6DuCHwIzAmL7uKzXZKfXedUcr7Jif5AI1mQyVEIRfHX40VhOTNzTsodP775jo4iEijDd6eM85RUA3WEJWlYNBojUIO9kQ+TS7bGSsOoepoXs8nhIJ5lDLF2kYYVsSLO1hEzUcfuyuVJUSNJLirOKx/6u0xA8zBAyQsGuMtCOoyzFBCtGXEeY6iFIUGWGoJlAOq+k4wZjHBulbmJAAjZA= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB3919.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(136003)(39860400002)(346002)(396003)(366004)(376002)(451199015)(41300700001)(2906002)(53546011)(83380400001)(6506007)(8936002)(5660300002)(44832011)(2616005)(186003)(6512007)(26005)(478600001)(31696002)(6486002)(86362001)(38100700002)(31686004)(8676002)(4326008)(84970400001)(36756003)(66946007)(54906003)(316002)(66476007)(66556008)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB9301 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT036.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: c1fa6625-cc5d-4019-e03d-08dafd27ea74 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fLLwXt0E4tE/mysFsJh2rRMW/PrZ4KpDwWaheP4XC7QvPhsCSlqW0LN1gXyhBH/MTkJ8TkhVaMd/wrixyQYhRQuTNlPWjYAwEujggH/+EVyydXwx3G9MsT84qC3JEfj0Crn5UmgzT4MGIXWzVhFQAqovjPvnlIBx4eL0OBSXi04cTIc6lY1kB2fuOd3LFjiIoR7EHGQ2g83VM26DYuL76e8NyKnGhG7tdOFTQsCOiGawXlHMEcgsDy5JYi29FRVVC2W3nqVtzjhqsA53sGaxINI7od+LTHy/pqSnVPTtmjODqKDi5NbWcEPchhiSwFFMvhr6xUBnZlqlizjeerhhTvQWJHwrJErsf/PYiz1as6BqqTZH+1MUexU6xTep5vMJ6RarF4zpFzdJ8b6B6aZk4vY4S7ib9T14EM7GFmjFgXZUvCpHLB6ZmUVTGY5VMVBG8WT4Ve9VR3uqbUgBRUjGBiH5da3cAHyBQ8jrLDyFGn9mfAK/F6wzwT9DYE+CsLw/ySyuamiGaB2ZZGXKel9s6QJfffyVJFhz+MFtdibF7hqwnON0FhUTJ5c1+d4YYc5fyLUe6fFQstJl7j0VR+EWVX8r1dXqbdmQ6js2SzQt4Qr24g9dZBJl5egcoLArPRoFsjp5qsHSopkQ8yjaKKZ/Bls/yxhO/Zu0NbxLKtsyxJSNwOPxdaBa9qgUMa2j3EJsXTPvF5xkLWOJmVb9ZqmTBfgRQNX0NLsA/ZrFn2oTGbi+wtI0uqlC+epSfYCjOVzHljqo+W3D/kOx2Hxgb0U+Pj929uMGriUYeFzND47cX4KjgSuSAi0cb+2dLdZas9EI X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230022)(4636009)(136003)(376002)(346002)(396003)(39860400002)(451199015)(40470700004)(36840700001)(46966006)(356005)(31696002)(86362001)(82310400005)(6512007)(107886003)(6486002)(6506007)(53546011)(478600001)(2616005)(336012)(26005)(186003)(316002)(70206006)(70586007)(54906003)(2906002)(8676002)(4326008)(41300700001)(40460700003)(82740400003)(36860700001)(40480700001)(81166007)(5660300002)(83380400001)(47076005)(8936002)(44832011)(31686004)(84970400001)(36756003)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jan 2023 09:55:20.2364 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ad398bc1-0eb8-40a1-f3fe-08dafd27f047 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM7EUR03FT036.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB5952 X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_SHORT,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi Tom, On 1/19/23 10:46, Tom de Vries wrote: > In test-case gdb.base/unwind-on-each-insn.exp, we stepi through function foo > to check various invariants at each insn, in particular hoping to excercise > insns that modify stack and frame pointers. > > For x86_64-linux, we have a reasonably complex foo (and similar for -m32): > ... > 4004bc: 55 push %rbp > 4004bd: 48 89 e5 mov %rsp,%rbp > 4004c0: 90 nop > 4004c1: 5d pop %rbp > 4004c2: c3 ret > ... > Both stack pointer (%rsp) and frame pointer (%rbp) are modified. > > Also for s390x-linux (and similar for -m31): > ... > 0000000001000668 : > 1000668: e3 b0 f0 58 00 24 stg %r11,88(%r15) > 100066e: b9 04 00 bf lgr %r11,%r15 > 1000672: e3 b0 b0 58 00 04 lg %r11,88(%r11) > 1000678: 07 fe br %r14 > ... > Frame pointer (%r11) is modified. > > Likewise for powerpc64le-linux: > ... > 00000000100006c8 : > 100006c8: f8 ff e1 fb std r31,-8(r1) > 100006cc: d1 ff 21 f8 stdu r1,-48(r1) > 100006d0: 78 0b 3f 7c mr r31,r1 > 100006d4: 00 00 00 60 nop > 100006d8: 30 00 3f 38 addi r1,r31,48 > 100006dc: f8 ff e1 eb ld r31,-8(r1) > 100006e0: 20 00 80 4e blr > ... > Both stack pointer (r1) and frame pointer (r31) are modified. > > But for aarch64-linux, we have: > ... > 00000000004005fc : > 4005fc: d503201f nop > 400600: d65f03c0 ret > ... > There's no insn that modifies stack or frame pointer. > > Fix this by making foo more complex, adding an (unused) argument: > ... > 0000000000400604 : > 400604: d10043ff sub sp, sp, #0x10 > 400608: f90007e0 str x0, [sp, #8] > 40060c: d503201f nop > 400610: 910043ff add sp, sp, #0x10 > 400614: d65f03c0 ret > ... > such that the stack pointer (sp) is modified. > > [ Note btw that we're seeing the effects of -momit-leaf-frame-pointer, with > -mno-omit-leaf-frame-pointer we have instead: > ... > 0000000000400604 : > 400604: a9be7bfd stp x29, x30, [sp, #-32]! > 400608: 910003fd mov x29, sp > 40060c: f9000fa0 str x0, [x29, #24] > 400610: d503201f nop > 400614: a8c27bfd ldp x29, x30, [sp], #32 > 400618: d65f03c0 ret > ... > such that also the frame pointer (x29) is modified. ] > > Having made foo more complex, we now run into the following fail on > x86_64/-m32: > ... > FAIL: gdb.base/unwind-on-each-insn.exp: instruction 1: $sp_value == $main_sp > .... > > The problem is that the stack pointer has changed inbetween the sampling of > main_sp and *foo, in particular by the push insn: > ... > 804841a: 68 c0 84 04 08 push $0x80484c0 > 804841f: e8 10 00 00 00 call 8048434 > ... > > Fix this by updating main_sp. > > On aarch64-linux, we run into PR tdep/30011: > ... > FAIL: gdb.base/unwind-on-each-insn.exp: insn 5: $fba_value == $foo_fba > FAIL: gdb.base/unwind-on-each-insn.exp: insn 5: check frame-id matches > FAIL: gdb.base/unwind-on-each-insn.exp: insn 5: $sp_value == $main_sp > ... > > On powerpc64le-line, we run into PR tdep/30021: > ... > FAIL: gdb.base/unwind-on-each-insn.exp: insn 7: $fba_value == $main_fba > FAIL: gdb.base/unwind-on-each-insn.exp: insn 7: [string equal $fid $main_fid] > ... > > Tested on: > - x86_64-linux (-m64 and -m32) > - s390x-linux (-m64 and -m31) > - powerpc64le-linux > - aarch64-linux > > Also I've checked that the test-case still functions as regression test for PR > record/16678 on x86_64/-m32. > --- > gdb/testsuite/gdb.base/unwind-on-each-insn-foo.c | 2 +- > gdb/testsuite/gdb.base/unwind-on-each-insn.c | 4 ++-- > gdb/testsuite/gdb.base/unwind-on-each-insn.exp | 7 ++++++- > 3 files changed, 9 insertions(+), 4 deletions(-) > > diff --git a/gdb/testsuite/gdb.base/unwind-on-each-insn-foo.c b/gdb/testsuite/gdb.base/unwind-on-each-insn-foo.c > index af9fc11ddab..635aa44135e 100644 > --- a/gdb/testsuite/gdb.base/unwind-on-each-insn-foo.c > +++ b/gdb/testsuite/gdb.base/unwind-on-each-insn-foo.c > @@ -16,7 +16,7 @@ > along with this program. If not, see . */ > > void > -foo () > +foo (const char *s) > { > /* Nothing. */ > } > diff --git a/gdb/testsuite/gdb.base/unwind-on-each-insn.c b/gdb/testsuite/gdb.base/unwind-on-each-insn.c > index 60bc83a6d4f..821df375115 100644 > --- a/gdb/testsuite/gdb.base/unwind-on-each-insn.c > +++ b/gdb/testsuite/gdb.base/unwind-on-each-insn.c > @@ -15,11 +15,11 @@ > You should have received a copy of the GNU General Public License > along with this program. If not, see . */ > > -extern void foo (); > +extern void foo (const char *); > > int > main () > { > - foo (); > + foo ("foo"); > return 0; > } > diff --git a/gdb/testsuite/gdb.base/unwind-on-each-insn.exp b/gdb/testsuite/gdb.base/unwind-on-each-insn.exp > index 5e822effaf1..c61ffe5d174 100644 > --- a/gdb/testsuite/gdb.base/unwind-on-each-insn.exp > +++ b/gdb/testsuite/gdb.base/unwind-on-each-insn.exp > @@ -103,7 +103,12 @@ for { set i_count 1 } { true } { incr i_count } { > # Check we can unwind the stack-pointer and the frame base > # address correctly. > lassign [get_sp_and_fba "for main"] sp_value fba_value > - gdb_assert { $sp_value == $main_sp } > + if { $i_count == 1 } { > + # The stack-pointer may have changed while running to *foo. > + set main_sp $sp_value > + } else { > + gdb_assert { $sp_value == $main_sp } > + } > gdb_assert { $fba_value == $main_fba } > > # Check we have a consistent value for main's frame-id. This is great. Thanks for improving it. From aarch64's side, this LGTM.