From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by sourceware.org (Postfix) with ESMTPS id A03723858421 for ; Tue, 28 Mar 2023 13:42:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A03723858421 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=1680010951; x=1711546951; h=from:to:subject:date:message-id:references:in-reply-to: mime-version:content-transfer-encoding; bh=xM610cTuj82ED3pZCz/has6jtmaYcPsrLArOxmMaEnE=; b=N4W0gCNx16ZT1R8ZD+ZvhhsfksbOw4nlxqXU07gIIToZyX7A/TBqdv3n nZtHJhH59jUytIEilpY20Z6C3djT1ihlqeHJDhcaXc3Or4CJdmK51td18 tNtNivBwPrJgvCOTVrrip1qEBh34gNuOQHzk3IbZz1zyPLHfuqlXqhl0f 098SqBKqlj73wfDnw5X28eTX5HjOPSNtnSN+//vNHBG3y1B232eKuiL8E LEQLo7bA1f7GThmIfItyDjsfBJ1wKvYxzGYQQJ7PHytAsR66Ka9juYO6/ gI98QwThtuJabFKfpqsPmDoUDAPky0sjhh7fMr4kBdcQbOhemsmbEv6Ms g==; X-IronPort-AV: E=McAfee;i="6600,9927,10662"; a="338066810" X-IronPort-AV: E=Sophos;i="5.98,297,1673942400"; d="scan'208";a="338066810" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Mar 2023 06:42:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10662"; a="753156444" X-IronPort-AV: E=Sophos;i="5.98,297,1673942400"; d="scan'208";a="753156444" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga004.fm.intel.com with ESMTP; 28 Mar 2023 06:42:28 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Tue, 28 Mar 2023 06:42:27 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Tue, 28 Mar 2023 06:42:27 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) 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.21 via Frontend Transport; Tue, 28 Mar 2023 06:42:27 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.170) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Tue, 28 Mar 2023 06:42:26 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J6deTG9TxIW6Sngm6q0FcyrLNVPfMQIMXCJ/4teDOgsOTYzdPRCAzLbr1HAaCleY+mIvjvkH2UwzjYC4mnq75iPrNhsGGQhvzVNnvOP5RoCAiwBYeZ4n+hV92Nme/IpnWf11K1bPCxS0vJ3MTLMicEOFiY5LUVWhzfmdOurhAqZHUfwf7IC4ggXr+glmqD8jV6U1q1Ro7a8r+92mTNBbEQZCXGpGjA6nbKuIqXZ/z/2QSVDlu/wgAiCVTLWBxYSZX6gF8GJIpmzUH6lvPnCS8Ga+3hnQQbwXWCxCRRpjehSY8CRYVEuKbISS/MknesB3fPiLPfvYVEBTsqo8dVImoQ== 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=BFlJIrpmSu6WazPzStsWuEI25TBjDnfr6TSosqOnQULBJTu7Kf9wWiEkFprOLk0BVAMLNDVGlT79ir0121gXpWf5QVinrpGylB6kIBPNE17X7xxZ0u/KpKgZT/UK65/AOgXRskxwuJsZlyiOheqBDyb2uHc65sAf4dZHivzYFfTbH6uUgFMyhd433d75fyDnJXxMxVIWnobBHYCvBALfjzgyTOFRrINZjFcPbzTJZKP41U0/kO/6EvEqp9Z+tYZKpRBSjP1I48bt162eQj/HgatzIdQO7oEu2yW6QoUbzSyx1viGVUUBxqfVtlOgukbQNyXTk6haMH/NqvXQuNNV8A== 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 SA1PR11MB6895.namprd11.prod.outlook.com (2603:10b6:806:2b2::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.33; Tue, 28 Mar 2023 13:42:25 +0000 Received: from DM4PR11MB7303.namprd11.prod.outlook.com ([fe80::cc2a:b1a3:91ad:780d]) by DM4PR11MB7303.namprd11.prod.outlook.com ([fe80::cc2a:b1a3:91ad:780d%6]) with mapi id 15.20.6178.041; Tue, 28 Mar 2023 13:42:25 +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/TiV9FwiDa8QXzDQ Date: Tue, 28 Mar 2023 13:42:24 +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_|SA1PR11MB6895:EE_ x-ms-office365-filtering-correlation-id: 22839e22-84cf-4168-04f5-08db2f9243aa x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KL7t9d3h0Rosa9dzOcLPDVdgpd3xA/HLCCZN5MBr2Tw53HGI/itBEgDXCC6TMIT58SchaMuqol6FERlVqdc11xxVmdm5SX0BxL8+R6dEvN2jol7We+axIR9XBqC+6sRDEHBCMs7+m5NE0cFL0qUm4N7vjxKH6VaOBNq0f8/gtm02a95djrLZB3hCr9a4L7Y62mk0erPcnvgNisPiF3bnUID2rqnW3p278gx84XkS1I81L3tf3eGxQo9h/xzsKG1IJXl31O5Qu4I9Fz80nr/4zMDlCZ1z8ZcdMzzJIr47BYvGLrYdWfrKOfe10qAvBBBlWbFqSF2wwhnm1H/WLWJGIcAKt+FOAZ+ySNUKYhw0pfAtefOMQvxh5Fbl+Jjj2zodMn/lA4fsGPjEB/cHF6y+Pg4iDg3aoefvfyQP6SNCdcr3DCNzFZsaGE8KlnQWumcK2hL/s2ssVlhRVlG0HTn4bToGSmjg2UWN21Lr1Vc8oVMdJWV2YO6KtmTkATAs+ZNjcbYWTN/TEqkSnFJ/O75+LsDB2ojKUPaEMHV6ZKE/Wbh5yB7DmwDhztVwObpb8nsmcGB04uXwvsE9S84ChoXwznK4pLu7tZEf8WvhSvOFG/Ku1si/n7ovEwpuNdmnxEZQ 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)(376002)(346002)(136003)(396003)(366004)(39860400002)(451199021)(38070700005)(478600001)(83380400001)(2906002)(71200400001)(55016003)(33656002)(38100700002)(7696005)(5660300002)(52536014)(8936002)(6506007)(316002)(86362001)(82960400001)(122000001)(186003)(53546011)(26005)(9686003)(41300700001)(64756008)(66946007)(6916009)(66476007)(8676002)(66556008)(66446008)(76116006);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?VA7FOFgQwjrOXNmQ4/Nf7AoH6QVH50ZqcsT0K0m9I/2nNlX8wb3xxv8jbE0r?= =?us-ascii?Q?x4ms0rsaM/eppcZXMy6bFVFeqpNoWLCG/9EMq8GYTrDPQa8yfduTeWoOcYmb?= =?us-ascii?Q?J+qq8QLKg3Ywo8NWOMPeR5t/cfv8DVLfHIkSSMRqk5qGclmoWso/qoae3eKh?= =?us-ascii?Q?C5M1f3Lj9188seduB1iXqbfzwEMLmOrraJuq67LB/VN9Ghvv/Q9n9ji+ClfO?= =?us-ascii?Q?Lgmt6lIljzAQ84rX981FzMvYzf41OUHS5s13IA5CSQ5OKgA5ut9cye2gYRkQ?= =?us-ascii?Q?CjY73lWwIdvatmABQyEqVou3iFSHy8eIb2U/befX9axGs11zvJGSUFYNzWLt?= =?us-ascii?Q?BQOqAHbPPFVfdoVfz1HpMXaYdSJIZkMUCNz+vvww0McRfclcu1bQK9846EtH?= =?us-ascii?Q?BMlVc706Pt6DW3TslluL13hVc6mBYfhKDsOnEyeDsoEb1WqAb2BNDPVnyiBO?= =?us-ascii?Q?jP2dJ2NaRg+PCoUSO3LLY3jHQ0YV+GZ+AOGR7gU9F1177CSkTfSYJORi8ZEx?= =?us-ascii?Q?4yLZFM4uYD2FVNSMlf71hvH7VS0DbgcRVtpNd8dKghY4OC6HUt7lP9hcWSJ0?= =?us-ascii?Q?nZLlnteoKjdvncinzAR8nH7ToY7ESe+J1t0bAPVb0Qh10FplOvQaG202ukXD?= =?us-ascii?Q?eH7BeINj2VnrAha3bUMHFiDBBIzKPXic6Q2x5NCQmlkm4Z5FaA1gK4ykwdQ9?= =?us-ascii?Q?f4ucBMOh8VMp+dOhb1f2kfHYzBKC/K6JXgq1pGU9vxT4YCvw4VVoHhRmubs2?= =?us-ascii?Q?ll8WX5OR+NDfjZYwys7e1OAOPQqmJoe4FT4QJXelwVrl/a+5M0DIDtg7pMae?= =?us-ascii?Q?NNI/WkY3GxQ8nnx5pFIuM1P6OAsBzAW40RPXW7gEhsgv3QCaRU1eha2K1Lqs?= =?us-ascii?Q?brekyDImYLV01meWcLWRgxaukPr1dV/2rlVOMSDltSNJVdE3vR/pWbB0HsXV?= =?us-ascii?Q?xtljRgxvLmhiTIUcoY/7gNBLjM8lPvZzQQ/VJFYuwp1kYXCvCaRTr0aBHjbJ?= =?us-ascii?Q?8hY0FkIFDMI3/EafijXR1j9+IBbEjKomsrRuLG7s+7ZFtsNQ7AFcS+oWaMgY?= =?us-ascii?Q?DLuDljO9fQo5Y4xk5DLhoeXbelT57IlYCsynoftRiQfRPf+zUKB9MEdUT26Q?= =?us-ascii?Q?PcqgTABdVd+tWmSH2rp4BykmFj0+pKN2jxJnUIm7wQHlJ/ri1B1JMDTrkOaT?= =?us-ascii?Q?uM3oQOvoL5MNZAKDhgjCSn8fpqL8uuVVanw6YuiCpKaNAfAvxbSLTEBBmClT?= =?us-ascii?Q?MSbArvFkTm65bl+rHislDjx34VOSYq2S8KCqldKfI4HW5cnv9ckVBUi6i12h?= =?us-ascii?Q?0FuaDz2eXzBgVAwHp8f58Jz6YsZrFYsWD+PjloLMO/WhZqj8jj7MUpeeyj3Q?= =?us-ascii?Q?jvVDOKjZOqZ5gqDYOl65JbeW5Knwx2nc3JNOM6NkgMS+kcakp5p4HcsMW9FN?= =?us-ascii?Q?fgd9KFKKTvVjX8yIdVbWqPGXv5/5ZCUI/ScIDlQnnqJmOBi9i5jixNEUWrZm?= =?us-ascii?Q?8GTLWcg652RT1O/KoSyGo+VHrSLr9zYQYkkgVnltVLPn/VuLNyATP/Rlv1Y0?= =?us-ascii?Q?IBugXwn7jlUO0ErX+9aQPcQWaGB6PaVLlIDg5mplE3OiKTdXP8FJEfsaISIs?= =?us-ascii?Q?ag=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: 22839e22-84cf-4168-04f5-08db2f9243aa X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Mar 2023 13:42:24.9847 (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: KuxR6sVJpHJTseW//o86JgVT4CfRb5IwyLh45moHXA2CU8MKSeu48JmE9OpKQRTSeE7IAW/dGq3dUuzTgOiCkJNr4v4h3RL1QDv96QO+pxg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB6895 X-OriginatorOrg: intel.com Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-5.8 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 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