From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by sourceware.org (Postfix) with ESMTPS id 438CC3841885 for ; Mon, 27 Jun 2022 12:56:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 438CC3841885 X-IronPort-AV: E=McAfee;i="6400,9594,10390"; a="282175311" X-IronPort-AV: E=Sophos;i="5.92,226,1650956400"; d="scan'208";a="282175311" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Jun 2022 05:56:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,226,1650956400"; d="scan'208";a="836183783" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga006.fm.intel.com with ESMTP; 27 Jun 2022 05:56:00 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 27 Jun 2022 05:55:59 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 27 Jun 2022 05:55:59 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Mon, 27 Jun 2022 05:55:59 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.175) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Mon, 27 Jun 2022 05:55:59 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OAEAemMnYw2ECxVbcgJZh0+xB1FLpltt/RukJdaF8bpNdua4nWVA1wZV20fCL4dXjXKrjkOH0Y0NhWMOWI2rrwDXmHrDVnWxqxg5IBduueV7Yo0Cj5m8vW+yK45xngZms2XMIaSlA8E0Tt/o02ji3N4nWEfj/ElwSqgfSzskwF3Mn8koXSQ7gCfCxpZER6mFsljkJRIGbzZni6ytNS4332umTKGiFdqlXoNl1MM1A+5kKmxToo9xiH/RVkxSJ51KRhy4sGLLpLqpXb9hBIOlxeElKVvXkHU7e1Cr3awWfmjEUlW+NbzLfQ1/ocs74hgTwoTkU+WC8eQ/rK9V6iDUZA== 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=wKc0skNuuuEvQLaenghkNtWhl8zIi7gJXXi2gtPwGfw=; b=VXzUqO5s31jmZ07WI8wC1UIXLGAmjhACz44bd/nB3ZRU+YcQX1gLgAbDyvJXw2o8esXPaLdAEeZG+Mkm6xRAl2X7P1St1UgJYs0mqCSmYeyRs+uKC2J+Z+WJ8HivWviM6kLO97ca2wtGJllYFUWVUTU1BzMODsS5XVvUoZsf4T3YenxXYNwv+7ysSdDKb+wONoAeHI20a1lmvsrXbdxwg0CNhUmQUB7ZsxiF2AWhL/i47dRQ9/EH+/WpPBfWF3l8gdTr5OevhDGg6GbQhDsfTD2JReuPWTf5G3rLPWlLf5gtdS9iog2aEHxy0l+U7lllG4XE9rYODKk1RLL1NPhVow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM8PR11MB5749.namprd11.prod.outlook.com (2603:10b6:8:10::15) by SA2PR11MB5114.namprd11.prod.outlook.com (2603:10b6:806:114::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.17; Mon, 27 Jun 2022 12:55:57 +0000 Received: from DM8PR11MB5749.namprd11.prod.outlook.com ([fe80::f9d8:e8a8:94ec:58db]) by DM8PR11MB5749.namprd11.prod.outlook.com ([fe80::f9d8:e8a8:94ec:58db%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 12:55:57 +0000 From: "Metzger, Markus T" To: Kevin Buettner CC: "Lu@sourceware.org" , "Lu, Hongjiu" , Markus Metzger via Gdb-patches Subject: RE: [PATCH v5 03/15] gdb, gdbserver: support dlmopen() Thread-Topic: [PATCH v5 03/15] gdb, gdbserver: support dlmopen() Thread-Index: AQHYdo0bBWGibVIDv0miiRVY7OVkxq1WNZyAgA0ldiA= Date: Mon, 27 Jun 2022 12:55:57 +0000 Message-ID: References: <20220602132514.957983-1-markus.t.metzger@intel.com> <20220602132514.957983-4-markus.t.metzger@intel.com> <20220618210213.73f6b911@f35-zws-1> In-Reply-To: <20220618210213.73f6b911@f35-zws-1> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.6.500.17 dlp-product: dlpe-windows x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f8904d59-c5c0-4726-8d04-08da583c6101 x-ms-traffictypediagnostic: SA2PR11MB5114:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UiNJKoZgSzGnl2KzSmyMxYRwiE0nwuVi/j4WbVuspq25VrHybsJMCW0MpMtFJmtbt9EOLvvmM3fVGcZ0LXtA3Xt/aI4wdJF5geFYIW4ebhCGV3Wy0UH8PzD91/q359SrQt6W2Rsv5NPAy8nhY89/+ppzSuug3E2lEunEoEy3ZSW2OL2CSWvzoZbIdpHLk5SGBomZjGNlwxvYNDZj4FIQY3KuyI8sju4DBdTBTHmKqZBEPBk5shjtQZs2vyTo5OmYv6vCRXPWw7F2jnGvfSwrB8w3O+p3a2IJH7AWP2jNj1WCspDkRC0GNL6TsyBJhNUox5JObpPfDkYJz7at6UpiKdTRHHgQh08B44bWfNT/spALgIcp3bBzkYvjJ5xRe9wedFSzn95Gm6sLnPNiLwulxB5qREWgB0SR+qg/ZGfhSsf6jkc1F8+MPJy5ov1UUH14sGIK1C+YMqI4tMFkVxKvFrtWzVxFzS0YZQmXKONpgxfwxZcgy496N6FnfhWOFhQRWvuyLC3lmkVronGdhfLWQCk828XRqOSOWt31xG8az52Uz2OXG7sd3hgy/cL/Fpv4bDsdvcx5127C39eF1GnC/vvoW4wVi4JO6jr6d+lTDClIslc4NuvHRJkho5jRZU6WLmg+v6tzOUEllNhR0xRtmoGblj2uLdSDV/u1GBeShF3jso7tzLx8vwSQWQu0zFgAZaeLG2FZwuJ5CB+DvhKlQp72PaYFWyyrCRqyprqD5fgU/P4vAwA8FOfj2p9+YN/q6LimOnh+KUGi3t/sYYiEmbE/v+sLzwSzgeNx1o9dPMI= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR11MB5749.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(136003)(396003)(366004)(39860400002)(376002)(346002)(2906002)(6506007)(186003)(6916009)(122000001)(478600001)(33656002)(7696005)(86362001)(316002)(38070700005)(41300700001)(8936002)(54906003)(38100700002)(55016003)(5660300002)(66476007)(9686003)(4326008)(8676002)(26005)(71200400001)(76116006)(66556008)(66946007)(52536014)(66446008)(64756008)(82960400001)(83380400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?fTDYG11qauvMtI9jlkXUftkUYeX4WcGgMIW9rmBij1uzfWJHEobszW8gJ5G4?= =?us-ascii?Q?qxQ/Jknn55EdCJ4iK4WRuN7FZi6sB1zRLlz3VMO6jEaH/Eq97znTLr/kJY1f?= =?us-ascii?Q?VzYXoNTU2PFchp1LGh+gVf8pygk1EYfrBGBp8vTxu+K58Gs3YTpG+BmL3oRg?= =?us-ascii?Q?BrpQYPEBivNWK4aYbFg2nNmmoLmTYruTgE4NWig9J7M/nUbEqYqrWKQmOWTs?= =?us-ascii?Q?FUdtkSCe9VQcW3O0eQoBGAtvJBUzoova0H8aZGFdmAiozF2GMa6q8vihvx7R?= =?us-ascii?Q?MbQKz528OTx1GHXYQA2tUwOJrPc8jmHZzVM5Q0Eav3gWyvHREDvMn77raYSQ?= =?us-ascii?Q?tuh8B5cXHWuYOkMVrNRLkup1VlgRoTZ0sb5ifyL/QeIc0htHOPxCua0l+Pha?= =?us-ascii?Q?XYiPJjYIBjoWikrgZ63tuLgkJYdz58XVM0WYOC8bEhrfjoVSUq5F4Y4djPC0?= =?us-ascii?Q?uZvqmfEsFlTnfRs5mFDyNZkr0k21SIHxXzW9RmYoUm9CC+4h4MVPF5oSBGir?= =?us-ascii?Q?wPm6cZhAssj9sZuJy57VGMXcnKCWd1H6AAZzpPUGsK0EeKkK4IBlECQJENg0?= =?us-ascii?Q?tiQOUR1XdoYh54LyuYx7uEr0u4kgBebVWWOmxdqTSVL34NAwLmzqskR1JPs1?= =?us-ascii?Q?ySe2lwXm+5cgJ18XVC0/baN4TV8oFehXBNSgNRX7nsYcoKAfMCPzMub70/NB?= =?us-ascii?Q?ja+4z7K6JKLL7caHoWgeLXF2wyxbHjWdvbunGxsg+0hzoTfWmFY/aWJXyTH3?= =?us-ascii?Q?KdoF952BEFxNPhybDYEnwTO8IjO5Mlx9K25WgZqoSkIC/AMQm7MQMKyJVG30?= =?us-ascii?Q?NIxHvY6Bl099m96GQU04Mvoq0B9t4qYJX7Zw41CF0CfLm7Bxf4BJHqM37Vkq?= =?us-ascii?Q?G8i3sRC3SisbbfKuYC1tQfdmCxld7M34kD52D43YzcrZkeFUC8bgfx/TzuoY?= =?us-ascii?Q?20WqkBRxqrXujwOh/M5ANHNd0SQtZN3Dl56kMrQBVBetSHOynhLpo3By4dDw?= =?us-ascii?Q?ZdfKpsaTFjpCToIj8pDU21zvtnDzDrlM2o+4nvr3+aM6skNiGN5Fet1GB0JJ?= =?us-ascii?Q?wisGGsDhrqMmleEfn8g19fl/gj9807NsUyqTbuNm+WKQY03kcSpw7iMy9nSN?= =?us-ascii?Q?0B/nPWuXG3ABHyl74OesOLAoKKKn1JJ+Qkqe5wTU7xTB9eNesivAeqk10Uoo?= =?us-ascii?Q?S+NGD436mvaJQeIYHsALJRv3N0GC7B4xWxI0f49ixgp3Qo7ueeCzbVF5dCbx?= =?us-ascii?Q?3qLsM0S5RIfiqeCAtRMC6eBGCmB7toHea/SObTVymXYHzYeIsH9o9xgUkUjG?= =?us-ascii?Q?NWeYuR07p5RXSX3fr30/aClR4ZzLOL8Xk4EcMn4m7D/69KWHhzYXRC15Ic04?= =?us-ascii?Q?CBL/LMLVCZuTQVYAni4yYmDvL0NoIJqmy4cphWoP7CErVOV8qpMG9G8xh5SV?= =?us-ascii?Q?DGdBgGmVTaGEyuipk4eGzxm+WrC9MzPsbMKQOa8PuV9Z+I7P3ftaBrwubipP?= =?us-ascii?Q?3EaFAnUXSTMBrDDDGjmfgafufheoi0txuBrHfXhORcYxUCurWWPNrqijrqgI?= =?us-ascii?Q?43Lt4m92LKoqO6Pi2CqtWYZy+p/iuIEDuRBRzI4M?= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR11MB5749.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f8904d59-c5c0-4726-8d04-08da583c6101 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jun 2022 12:55:57.4807 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: hy4j8XOMKtHzRHMVFZPUJ3ygnHcG++iFCjI2mKOIG4ECNjXN/Vckwc8Z5ycMJZj9Bq/1cixVid9a6fxNJZrQpbfGPdHKry9tw0AXcxeil24= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB5114 X-OriginatorOrg: intel.com Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jun 2022 12:56:07 -0000 Thanks for your review, Kevin, >> diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c >> index 6222f79a7a0..1f2abcf16ef 100644 >[...] >> @@ -1697,17 +1872,34 @@ solist_update_incremental (struct svr4_info *inf= o, >CORE_ADDR lm) >> if (!svr4_current_sos_via_xfer_libraries (&library_list, annex)) >> return 0; >> >> - tail->next =3D library_list.head; >> + /* We expect gdbserver to provide updates for the namespace that >> + contains LM, which whould be this namespace... */ >> + so_list *sos =3D nullptr; >> + if (library_list.solib_lists.find (debug_base) >> + !=3D library_list.solib_lists.end ()) >> + std::swap (sos, library_list.solib_lists[debug_base]); >> + if (sos =3D=3D nullptr) >> + { >> + /* ...or for the special zero namespace for earlier versions... */ >> + if (library_list.solib_lists.find (0) >> + !=3D library_list.solib_lists.end ()) >> + std::swap (sos, library_list.solib_lists[0]); >[...] > >I was puzzled for a while by the uses of std:swap() in the above >snippets of code. I checked the rest of the GDB sources and found >that (at least in GDB) this is not a common idiom. I'd appreciate >it if you could add a few lines of explanation for at least one >of them. Do those comments help? diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c index 1f2abcf16ef..b231888b001 100644 --- a/gdb/solib-svr4.c +++ b/gdb/solib-svr4.c @@ -1346,6 +1346,10 @@ svr4_current_sos_direct (struct svr4_info *info) && (library_list.solib_lists[0] =3D=3D nullptr)) library_list.solib_lists.erase (0); = + /* Replace the (empty) solib_lists in INFO with the one generated + from the target. We don't want to copy it on assignment and then + delete the original afterwards, so let's just swap the + internals. */ std::swap (info->solib_lists, library_list.solib_lists); return; } @@ -1872,7 +1876,11 @@ solist_update_incremental (svr4_info *info, CORE_ADD= R debug_base, if (!svr4_current_sos_via_xfer_libraries (&library_list, annex)) return 0; = - /* We expect gdbserver to provide updates for the namespace that + /* Get the so list from the target. We replace the list in the + target response so we can easily check that the response only + covers one namespace. + + We expect gdbserver to provide updates for the namespace that contains LM, which whould be this namespace... */ so_list *sos =3D nullptr; if (library_list.solib_lists.find (debug_base) >> diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp >> index 6aef39e5e02..98715fdc87e 100644 >> --- a/gdb/testsuite/lib/gdb.exp >> +++ b/gdb/testsuite/lib/gdb.exp >> @@ -2451,6 +2451,102 @@ proc skip_shlib_tests {} { >> return 1 >> } >> >> +# Return 1 if we should skip dlmopen tests, 0 if we should not. >> + >> +proc skip_dlmopen_tests {} { >> + global srcdir subdir gdb_prompt inferior_exited_re >> + [...] >> + verbose "$me: returning $skip_dlmopen_tests" 2 >> + return $skip_dlmopen_tests >> +} >> + >> # Return 1 if we should skip tui related tests. > >I'm wondering if this can be a gdb_caching_proc? At the moment, there's >probably not much point since I think it's only used by the new test. >But if we end up with more tests which use it, it might be worthwhile. Makes sense. thanks, markus. Intel Deutschland GmbH Registered Address: Am Campeon 10, 85579 Neubiberg, Germany Tel: +49 89 99 8853-0, www.intel.de Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva = Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928