From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by sourceware.org (Postfix) with ESMTPS id 92AAE3858C78 for ; Tue, 20 Jun 2023 12:58:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 92AAE3858C78 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1687265921; x=1718801921; h=from:to:subject:date:message-id:references:in-reply-to: mime-version:content-transfer-encoding; bh=xM610cTuj82ED3pZCz/has6jtmaYcPsrLArOxmMaEnE=; b=g4a9kYra7rVzXEuU1JU8RnzKZv+0kklMYYYyNNtF+BysTAWMh06UhG17 czqVdR96g564WwEoHa/EEnMCCQlcQVl2ACIcqlfBg2crkyKrbWwbdYLW1 N3VpVMPPKPFPw4lu+0HwQrYqx+0FYz98H+Kg1+uGVCpCcgs5i5xoogRWf YmZAHAgTMRgZrvqvY8+r0b1ks1BNciUsMSjzkwDCQlfoi73LGtGbisZhM a0J7PbwF7jMzWI1Spot2qyabQvMdN6T1kJFPeUpvE5ZygPJAUwAmmmUDA Kko7zGefeHKrJjJoVmfB+IcTtX2sIkPZCzXaWNxm2boLqzeAfHcmNS5b2 g==; X-IronPort-AV: E=McAfee;i="6600,9927,10747"; a="446223893" X-IronPort-AV: E=Sophos;i="6.00,257,1681196400"; d="scan'208";a="446223893" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Jun 2023 05:58:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10747"; a="779410445" X-IronPort-AV: E=Sophos;i="6.00,257,1681196400"; d="scan'208";a="779410445" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga008.fm.intel.com with ESMTP; 20 Jun 2023 05:58:40 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 20 Jun 2023 05:58:40 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 20 Jun 2023 05:58:39 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Tue, 20 Jun 2023 05:58:39 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.172) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Tue, 20 Jun 2023 05:58:39 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j4VX+iyNzHNl7lL8XpvdoWuiBNDlzr9xYaM/SYVSeQ3WTNRkQo4+N1JOBAZp2cQ6pFknIJkhVPn1f7/R4rGpQ/6n2mgwugytPmHBzuew94yVjtt5fx+lDnMnWRrK+6XEQdicwhThWJM0sLQdKH2VcaK2MeC6cWmo8elZdKZs80EtsEzHUk9G/kGdGNt4vRU/dZaVU5gh77nKvXYVPBxkpaXLHj1nQODG/mi/DsQJbgvZn2JE3UIqLBUl7PtXghPqHieP3Dp9CexrXt6km6RfFIqUrKApUdjoDdyNMJHg7PBugOS/gel281S0GlEl7YtyMVbZJS/K8emApx4DtvRhEA== 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=/oBdFJLfpFcm8ypq3eAu6WMVvxqKSDo437Koh5YWT8s=; b=UF32+OXIwf5jeBCkXSf3x6w6490fHmF5ycE2sGcRBoXmCCDOiSV6oqZkUzmboX8hy44AWvr9PCdaWbz9FfURg/NWyQXKJckCxkRVm9KvExOeLzakmrPW6h6i1rIF4LDl/u18FJ6iTSEG6zJT/834EWA9veJL1K7ddHMKi5ftPW4lrC8p4BfT0Qh1Wbz+qFOFigTk0JKe5M0v80bRDgIqzW3dGwgjnan3uFJ1Uql9EPbgADeXRPO5FE4rUdiDwu0Zw0DkQO3+Mu53kVC8Jg6KkDzo5waTf1vR7dqSZRUlkF0mljwouBAq4r38aMjii8riFGVO2nOQWDNHOfpHKZQtwA== 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 DM4PR11MB7303.namprd11.prod.outlook.com (2603:10b6:8:108::21) by PH7PR11MB5886.namprd11.prod.outlook.com (2603:10b6:510:135::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.36; Tue, 20 Jun 2023 12:58:36 +0000 Received: from DM4PR11MB7303.namprd11.prod.outlook.com ([fe80::e57e:3584:99ad:d384]) by DM4PR11MB7303.namprd11.prod.outlook.com ([fe80::e57e:3584:99ad:d384%7]) with mapi id 15.20.6500.036; Tue, 20 Jun 2023 12:58:35 +0000 From: "Aktemur, Tankut Baris" To: "gdb-patches@sourceware.org" Subject: RE: [PATCH 00/26] gdbserver: refactor regcache and allow gradually populating Thread-Topic: [PATCH 00/26] gdbserver: refactor regcache and allow gradually populating Thread-Index: AQHZS2fP5L13ubj/IUKt/TiV9FwiDa+UVvEA Date: Tue, 20 Jun 2023 12:58:35 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB7303:EE_|PH7PR11MB5886:EE_ x-ms-office365-filtering-correlation-id: 86137a0b-8653-4bad-3d05-08db718e0efd x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rag14nDU3sv9UaZfdYq+48rzlC6tTSTRzr4ONIFLWBkgkTb1hbTOzkAHWPfQhEqjPqPUebOVs3Ue0lo+Hk2VjMsGbnDnod0QSOp25ZdRA5unqpPb8U0ZMrNyQTZZdMk7iMfpqHJdL6FKgMS918gvTi7LUIrCuIFmsAFVdrFe0Dly5LUV/sE1OqtyUEpeGRfWh2lhLyyct8gIPd0gH+VqlY5QHUVEknMYxuEKcPpjdIabl3mICil8sFoggNAPBgT3lHO9pIzlnAA4hUnTtkz3a4CDc8rpz7DIgM8nyIKnwBtPpyzn9GQbjB3awI1s0kWpiKnOXah3Y+q8VfCdm9rkNFDvvGWsBM+gLB0F+TRlU7256ZF3zcMVdQfxwg9ULKKa8k0yHO5GscQU8qBUaECeqaz7Gr82bGK/klrruIS3DIm0HGuFojH9X0DGgUoZeThxulaXP/yk2JH3i/lbdmGK4UJR9UpDYCsxKYHfH1rvS9SH0/J9USYBsSfrCSn6M4Pz92vwzFMkKyw7dQrufOLXSO3FRIlP7eW2++2tXPE/1n23azjVPMyfmOYo9H2wX6KxKCFnqbWCq/zZ9AUg6cm44o82JHV5PVPRk0gEPoJMjiaukptXZpKnfDN1JmnKQVtw x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB7303.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(396003)(376002)(346002)(366004)(136003)(39860400002)(451199021)(122000001)(82960400001)(52536014)(83380400001)(38070700005)(86362001)(2906002)(76116006)(5660300002)(186003)(8676002)(66556008)(8936002)(64756008)(66446008)(66476007)(66946007)(26005)(41300700001)(478600001)(55016003)(6916009)(9686003)(53546011)(6506007)(38100700002)(7696005)(71200400001)(316002)(33656002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?OZ2Ut67LRKwQoSebSnkRSFf/Z6oBPjazaINvvBZJzv2jtg8hoj/yLz+ACbJZ?= =?us-ascii?Q?C3jlm7HMXq4G9BxGXSX9mmKaZtuetSkfF7mDTULY9QAxtl3+1M8+nmdSNDcH?= =?us-ascii?Q?Z4w07FhPNh3TU0kSrRjGj7Fh9OEPKhq5DGY71+BdVLhPhpKQYfrImTBmJiTh?= =?us-ascii?Q?ihSMjHs4wMp396BBIM4Fpa275y+eR9E7zZVxCDPg17ozksR7dVyktgyD2vpc?= =?us-ascii?Q?n096GYZYpiA4jmo4OsjP41Qa2BM07Uw00d40qgQtHzpeRxJPpGnJdjYYBDxQ?= =?us-ascii?Q?GVlmVRsjZSNQQ4uwIzQNpnjb9rr5UhGwiqdSN0EoSQNEwoNlDeREubXm/wXZ?= =?us-ascii?Q?OpjEHibMEW6XOjJAgLi2E99lI5GUDEy6HPKs3Hu40668Qv/QnBJCg9KdL3R6?= =?us-ascii?Q?yiJOrCE9uPD2PotM4cRIVKDzj6iGYirtNEsW5dLn/akAsY5dWqpv1g8wURWS?= =?us-ascii?Q?i9tiUxSARljjnyFCgYzGjV8EskdjNKchifLKM728s2EooGr6ahNFudDuyGOL?= =?us-ascii?Q?dDVP8VzvhbcgotVcU+q24BkLtRLs6o4Cx3bsh0IyCvsyAqqk6bGE8QQoS0Zr?= =?us-ascii?Q?xBtExbeDM8HOgi1WZuONYysFXuV7eH4Aqac+doxXYjlbx59PPKu13+EKeR8y?= =?us-ascii?Q?Lmo/qrxgLZO0dJXd8fB58FGjKU8H+Cmy4uc/PBq957bFB6WcsP00YVzc+Gq0?= =?us-ascii?Q?B6AkADzBIqm+y5TUvflMdkVk0TLsYy9JKZB08OD70acZ13e1wtNJhCQ9WHTi?= =?us-ascii?Q?jneaFDr7CVWbSj/GOVv6zDxvCKWymOlAvXfP0UaF8g53cjKgpYmXwMbESTZL?= =?us-ascii?Q?AwXezrn2mmj0HosoGvhCKynye46r3HntWG8x9RQYpmw3fIwdQbyG1c8OULTG?= =?us-ascii?Q?CWFIhbUoVjlAdmS4f9g0+Q8UCs/966iMJSwbXmeV/GO8ZIAwjgKVpVDt1p3G?= =?us-ascii?Q?AkTK57GU+mOZjw7ctNvTKswmNIsxh83tLgXEJHg17GtTp6Zkan4cyDPd1hIv?= =?us-ascii?Q?5nzqC6h/dFNYvzM6DrkJXTSHUcUrmRxT0IMuxBGbcYef3ovBn3nrtjiYWGgw?= =?us-ascii?Q?l4IypxVU9k1uWQFXQmz1tx/S78JiXKO82NL9kj/SZYYdDPAuBWTRneLuYClP?= =?us-ascii?Q?iuHbiB6h8EpC0eqout5LKmSs58Tr1ufXV0O78cRwpiNjmaxeOrBvvDMT51te?= =?us-ascii?Q?7ZQpvVFPjq/sio8eXZDBzcDw9kVpiaqVlLPHBRFwJ5bLuZUKAbvFVxWhYwMi?= =?us-ascii?Q?iHDysFa0aHYfJshD+OGWzSR8d37WLdhWUuEJ61tLGXwsSRRlwecyiCg2q9ir?= =?us-ascii?Q?qYhEy+08A/Vxy8p/V24Wy1ZVvy3pqzt0IAmJpz/HExl04OX8adqh9hT7TNKN?= =?us-ascii?Q?nikcc2QXAKgMi4j3GOdLvZmopQCnwoUmoYDPGXqGz+INRkHQox1iYxoQSpmi?= =?us-ascii?Q?k707DGg/3miVlw6EUMbQuveFZDKx7odXvZa5hT0SB1ZZkMm/tQd/2wNRq5r+?= =?us-ascii?Q?Ni0I4Zr8I0FfobJY3zAawZtnvRMchi2y7hUpnwK5+kdMV6UFEybIPnEgta0z?= =?us-ascii?Q?BaGdHaxyvx6E+EzOOvOkC9bMKUKTnlVFEciZxuy0n96v6EGysvedxZjkbyjl?= =?us-ascii?Q?lQ=3D=3D?= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB7303.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 86137a0b-8653-4bad-3d05-08db718e0efd X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jun 2023 12:58:35.3336 (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: tKiDpRgitFZhX3bivb3XZoJEnQVd0z3anhn25NJBRyqSd6g3P5WGLf9VCybPHnLMTmZMgWDRXOSUpD8xj0nXtDH90LMGwVQWhdumAr77dIg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB5886 X-OriginatorOrg: intel.com Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-5.9 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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 List-Id: Kindly pinging. Thanks, -Baris On Tuesday, February 28, 2023 12:28 PM, Aktemur, Tankut Baris wrote: > Hello, > = > Gdbserver's regcache is defined and used in a way that it is either > invalid or fetches all the registers from the target prior to being > used. It also seems some regcache functions have two different contracts > based on argument values (e.g. a buffer being nullptr). > = > This is an attempt to refactor the regcache in gdbserver to > = > - convert several free functions to methods. > - use and update register statuses more consistently. > - allow populating register values gradually, instead of having to > fetch all register values from the target. > = > The last item above is utilized in our (Intel) downstream debugger. > No gdbserver low target is modified to utilize that feature in this > series. > = > Regression-tested on X86_64 Linux using the native-gdbserver and > native-extended-gdbserver board files. > = > Tankut Baris Aktemur (26): > gdbserver: convert init_register_cache into regcache::initialize > gdbserver: convert new_register_cache into a regcache constructor > gdbserver: by-pass regcache to access tdesc only > gdbserver: boolify and defaultize the 'fetch' parameter of > get_thread_regcache > gdbserver: add a pointer to the owner thread in regcache > gdbserver: turn part of get_thread_regcache into regcache::fetch > gdbserver: convert regcache_cpy into regcache::copy_from > gdbserver: convert free_register_cache into a destructor of regcache > gdbserver: extract out regcache::invalidate and regcache::discard > gdbserver: convert registers_to_string into > regcache::registers_to_string > gdbserver: convert registers_from_string into > regcache::registers_from_string > gdbserver: convert supply_regblock to regcache::supply_regblock > gdbserver: convert register_data into regcache::register_data > gdbserver: introduce and use regcache::set_register_status > gdbserver: check for nullptr condition in > regcache::get_register_status > gdbserver: boolify regcache fields > gdbserver: rename regcache's registers_valid to registers_fetched > gdbsupport: fix a typo in a comment in common-regcache.h > gdbserver: fix the declared type of register_status in regcache > gdbserver: make some regcache fields private > gdbserver: use REG_UNKNOWN for a regcache's register statuses > gdbserver: zero-out register values in regcache-discard > gdbserver: set register statuses in registers_from_string > gdbserver: return tracked register status in > regcache_raw_read_unsigned > gdbserver: refuse null argument in regcache::supply_regblock > gdbserver: allow gradually populating and selectively storing a > regcache > = > gdbserver/gdbthread.h | 2 +- > gdbserver/linux-aarch32-low.cc | 2 +- > gdbserver/linux-low.cc | 18 +- > gdbserver/linux-ppc-low.cc | 12 +- > gdbserver/linux-s390-low.cc | 14 +- > gdbserver/linux-x86-low.cc | 9 +- > gdbserver/mem-break.cc | 4 +- > gdbserver/proc-service.cc | 2 +- > gdbserver/regcache.cc | 305 ++++++++++++++++++++------------- > gdbserver/regcache.h | 92 ++++++---- > gdbserver/remote-utils.cc | 2 +- > gdbserver/server.cc | 16 +- > gdbserver/tracepoint.cc | 25 ++- > gdbserver/win32-low.cc | 2 +- > gdbsupport/common-regcache.h | 11 +- > 15 files changed, 302 insertions(+), 214 deletions(-) > = > -- > 2.25.1 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