From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2133.outbound.protection.outlook.com [40.107.21.133]) by sourceware.org (Postfix) with ESMTPS id 045AE3858D35 for ; Mon, 22 May 2023 14:42:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 045AE3858D35 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=xmos.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=xmos.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CfdNfs+BWEsMa3m2G1ZqzAN7BKB4R6T99N82fUkLQ5zNw6LIWgnPVuBtI34KUPb8pzGHPfZukjZgQWRHejAl4UziQlw0YF0SkxAHjZMGdKj9ZKJg8htIVvU/bCqJFJmwWGT9OCZDtHeftld3aZ9cUPnmHZoc80zB/lEpi2l7qE9v9wTUyaZrol/KBayO9iW+n3QpopEcszqhKLO3RDNZCyWuzXMCBwTPOjiTEBaH3gWD6DMSX3x++bULoFt4OHQK59v5hqTYa1EC5nY6yup0X8gASsnW0iF75zp3WeELrquSduA3CN464d9X49S2ZHQpqsiZ/ucdRJcS1zaikQY8Dg== 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=Qza9AJj2yoVd45DT8MEpEa+xMCOcEslO9D5T+8WKEcE=; b=JE5tYOj/C7pF8RgbwlMWca3iL4B8V8IV2hIev4O7ksDSdoZnbhLfvpYipyrKhAlLiijQIZTFf538l9BPfyUErPJuR9mc2ujGPxl5XZMqHxhgLoH5s+idkYYk7oJwXSwa/5JI7qRsdfyxHF/kaFhpuPfSCkfqNFQXihASsjIt3i+/4eo9RHU138MRhLmkqfxPt9UzSKl9BefJEsarjcdaLc2JIRUDt+ktASE1lHJ7N6uwcDTn0oG/YqWKmST2Vgs1CZoCtyXSwFRd1lVe61UlMQc9ho4vpMR+KCgYUCm6Xi7JF8/DtAcb8CHoiYf6f3v1+cwYUB/v5GMOmyYhARjLVw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=xmos.com; dmarc=pass action=none header.from=xmos.com; dkim=pass header.d=xmos.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xmos1.onmicrosoft.com; s=selector2-xmos1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Qza9AJj2yoVd45DT8MEpEa+xMCOcEslO9D5T+8WKEcE=; b=PGcs5XjGwHzI0tjUtCgisTbHQi7Xy0lAkPUw4rZY7T9E/mQi9eoenD8FRaKDR/Z2fHzphgU2zk79CLesQQfidYuvyDh8mREpwYQopcRkk+mwpzf9B6I4ojM1GtxSmxjHeticktGprecQCYHZjPzDCuh0PCQywZp9EbxgBp01x50= Received: from PAXPR09MB5583.eurprd09.prod.outlook.com (2603:10a6:102:280::6) by VI1PR09MB4176.eurprd09.prod.outlook.com (2603:10a6:800:129::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.27; Mon, 22 May 2023 14:42:19 +0000 Received: from PAXPR09MB5583.eurprd09.prod.outlook.com ([fe80::8ada:b671:a905:128a]) by PAXPR09MB5583.eurprd09.prod.outlook.com ([fe80::8ada:b671:a905:128a%3]) with mapi id 15.20.6411.028; Mon, 22 May 2023 14:42:18 +0000 From: Ciaran Woodward To: "gdb-patches@sourceware.org" CC: Ciaran Woodward Subject: [PATCH] Fix scoped_value_mark not working with empty value chain Thread-Topic: [PATCH] Fix scoped_value_mark not working with empty value chain Thread-Index: AQHZjLtgRoAzhHeK2k69AlNP+iFzsw== Date: Mon, 22 May 2023 14:42:18 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=xmos.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAXPR09MB5583:EE_|VI1PR09MB4176:EE_ x-ms-office365-filtering-correlation-id: e33bebd6-fbda-4811-e9cd-08db5ad2be88 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: S/nAaExo6nWkIFbmIg0CG7+VMJc/KkRa+ACFB1mX2usgWn14K4vbV6msCle7D6a8r0GuGdYOcCaeFu1tNCm8Q2eQDL5IpYDBkzJvZQ0iH3bH/iHwJngnuZqmmNbUFInfsdDA4nHugFcxIOBiB+GeWJMz2DHOAoBMu+1lFyzey96Za+nlKWAeBX2hM+j8ldeNnuJcdqZLWIIx4vziozV4lXVTjsfHEnP2NLPmU0/wdFtPsaf0q000/coWl+FS1Hbuf/YUeupbNR6K+QQOEWWWlEEyr9G5Sx6k0uzlqvIECEo6E+o9wqke7DClLQmcbWe+HtoTEVupVzMKmhqRzxN9tZPeN3jMwEqyW/zH6yCB7bq0pq+tXkazfcYjVGFg90slh9rJ1TPwq0oektksFPLGsDd79pgEa1wJYPVia80RP5e0BODjxb6ITLjQvbrYj2M9ibt5aVvfrzY3UyOl2L1LcVR6ga7wtk1nV6F9TZbr4MLnYZITzDF0Gu+T13hPkXjeAR/PRWFnLMgNLwejal0d3DgQivB/42aMwfiLWGByVuX+f/cF/L04qXEsdT/TYvtyGcQP78fQkTXYwWAqY1UJSylobO1/YCdN28tPVa3m4SH13iG4nsvLFLbnytjHTZAC x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR09MB5583.eurprd09.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(136003)(366004)(346002)(376002)(39830400003)(451199021)(8936002)(8676002)(52536014)(5660300002)(186003)(55236004)(9686003)(6506007)(83380400001)(26005)(86362001)(122000001)(38100700002)(38070700005)(107886003)(41300700001)(71200400001)(7696005)(33656002)(55016003)(66946007)(66556008)(66476007)(91956017)(66446008)(76116006)(316002)(64756008)(6916009)(4326008)(478600001)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?ax1RgeVAtzQR+2jONvEOJ5Tv7RNXZgMORYT0ff+PNpE+rnqlfAoSOThuYG?= =?iso-8859-1?Q?TshYQZnQTZURwkBOcvDd7qC9oRl97vEy/sDe4YVFXhlELbMraQsqBz2hHr?= =?iso-8859-1?Q?3QHkRsrTJps1hHnH7dK98Y1a6SpQaJLoY1bMPn8Nz+gRhUFeH1G4AV42D8?= =?iso-8859-1?Q?6b8xiZio2/43MhnOfo1E/o+Y+D00lEmOaVTvK51QHJHPREh/C2S0/Fhvx7?= =?iso-8859-1?Q?0XCSRmn43Jp5dEDj324Qf0xgkO/5cGKTvy+7CxZ1IQSPZCUecCeZedkyAB?= =?iso-8859-1?Q?S9oDHssyhrywkNkJzQsZEktOWXpd2UQ1m4nA7UcwKtwYtUhmnuE7isLmal?= =?iso-8859-1?Q?GOZtEPk3XXevlEL/UOYLzRA/HBkZic1jmbDDF2lDIUW31A8sZugft8ohgA?= =?iso-8859-1?Q?njrFhgezpEqXBGqttG4lEiClKC9MV/sSgm2WExqtkwfbjVQf5YdSNSRutt?= =?iso-8859-1?Q?fJFQ6gjqwNXA/JMSnATKDIB0fZy+WwV94Rq61+NG1uRXBZVIWBmT+06XKl?= =?iso-8859-1?Q?q/n7zAQ5lU/yCpD28iv6NqKNSAbmKb3GaWvxg3vfesQ/Zm1VYNCJOrr03x?= =?iso-8859-1?Q?hPvWUPTZNgayVXmeP/n7mDkls812+UCrROpKFUCtcVl/ZpZWzvVmSAtWop?= =?iso-8859-1?Q?Uk557IolPtbVVhZaD43eXvYuwHxDjqD/DhFpXQJ57yi8cvncoky4amwhxY?= =?iso-8859-1?Q?WMOE2grwQ9gQDzQlsfXbuvth/fcTQ1CVip+17SOqGSuoj3XUGl9+C6efOA?= =?iso-8859-1?Q?3ho5Mz1umbSnv/o29j5NHNYmVK8YMtvHs73uc8mYmwgQwXgage2IXk6Q/P?= =?iso-8859-1?Q?9hh122E3IFDmjRx6bIR9J31MdM23l8YVKvXsb0IGFaEOtJR8FY0A2fRSCC?= =?iso-8859-1?Q?BGhx3xSNwDnxKYkiMDWx78X/xSAcRQ2qfsMOFC8Kc86qkDOx8AnuUurlQK?= =?iso-8859-1?Q?7eDNAKcTkrd6GDVpcK9klJM+uNm7E1cBu/GJLO9AEm/04tXpG3L+2ptEIm?= =?iso-8859-1?Q?sHDxfvzrwbjeovUHgYYFalJh9YtMO2cJVyoUscbwUGqbS5QhhLyOPXW8hc?= =?iso-8859-1?Q?B/Qyca8OsTSea20mZl1iAXGrik6V5Pg7y74SCVVoZ+gsHOih0X/j6o73lh?= =?iso-8859-1?Q?J8MtuFLaCnDhGN2/0qY8YPYPcxVqaSBFTL0xqizhvA8tkFe48hiGOIZsOv?= =?iso-8859-1?Q?/kM+Fj3ve94yOvn80LB0QASgMRCEy/HYl8TuYHcy01Gb1BEQpF18V+G/R1?= =?iso-8859-1?Q?lxBdKxOW/IlcrcOMuvu3uUvGDyJmp+ZgOBex2sEyGZQsb0dvIxebKzB+tX?= =?iso-8859-1?Q?+Tw6tM9Hi3MmrllCWmYSb9vIGTnyTfKRIzUNrmHjh59lKbrqguYU7pZMia?= =?iso-8859-1?Q?Rvn5v1w3LiUrvFdZVjlnCJ7cRQ2wnzf27KE5U8pSwOTnZmiLT1o8mFWoDN?= =?iso-8859-1?Q?NcPgXLapwbI7qShMd3PuM1Dhm5yubqMAvFvNR3jYL458s3dCPs+Xw/sqOn?= =?iso-8859-1?Q?Jar7+FCx5DgGmc6zhufTj7IMlzz9IKeO7hi//BrarqxAmG9YvCUHiAEMzT?= =?iso-8859-1?Q?aUVJbZ4byLWZqWOnq0LNmUR8UEONhlRk9zoONAgknwAeeJOKB0px5YKQ8O?= =?iso-8859-1?Q?SJK9cObbX4le4N35qOMeXBIbFeAKmBo2gi?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: xmos.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAXPR09MB5583.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e33bebd6-fbda-4811-e9cd-08db5ad2be88 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 May 2023 14:42:18.8912 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 975ecfb1-4080-42d2-a01d-4a4d0707a539 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5qXi4TtrqftW/0iMjh3HlTbgrfwEiVszx0V5zyg1FR1rB5JxTCLxJkM9D473htTBORs6Go0EDxghYP8WdmObOw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR09MB4176 X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,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: The scoped_value_mark helper class was setting its internal=0A= mark value to NULL to indicate that the value chain had already=0A= been freed to mark.=0A= =0A= However, value_mark() also returns NULL if the value chain is=0A= empty at the time of call.=0A= =0A= This lead to the situation that if the value chain was empty=0A= at the time the scoped_value_mark was created, the class=0A= would not correctly clean up the state when it was destroyed,=0A= because it believed it had already been freed.=0A= =0A= I noticed this because I was setting a watchpoint very early=0A= in my debug session, and it was becoming a software watchpoint=0A= rather than hardware. Running any command that called evaluate()=0A= beforehand (such as 'x 0') would mean that a hardware watchpoint=0A= was correctly used. After some careful examination of the=0A= differences in execution, I noticed that values were being freed=0A= later in the 'bad case', which lead me to notice the issue with=0A= scoped_value_mark.=0A= ---=0A= gdb/value.h | 8 +++++---=0A= 1 file changed, 5 insertions(+), 3 deletions(-)=0A= =0A= diff --git a/gdb/value.h b/gdb/value.h=0A= index d042d816409..85a33abe7d7 100644=0A= --- a/gdb/value.h=0A= +++ b/gdb/value.h=0A= @@ -1155,6 +1155,7 @@ class scoped_value_mark=0A= =0A= scoped_value_mark ()=0A= : m_value (value_mark ())=0A= + , m_freed (false)=0A= {=0A= }=0A= =0A= @@ -1170,16 +1171,17 @@ class scoped_value_mark=0A= /* Free the values currently on the value stack. */=0A= void free_to_mark ()=0A= {=0A= - if (m_value !=3D NULL)=0A= + if (!m_freed)=0A= {=0A= - value_free_to_mark (m_value);=0A= - m_value =3D NULL;=0A= + value_free_to_mark (m_value);=0A= + m_freed =3D true;=0A= }=0A= }=0A= =0A= private:=0A= =0A= const struct value *m_value;=0A= + bool m_freed;=0A= };=0A= =0A= extern struct value *value_cstring (const char *ptr, ssize_t len,=0A= --=0A= 2.25.1=0A=