Message ID | PAXPR09MB5583501A5BABF34867A616E5B9439@PAXPR09MB5583.eurprd09.prod.outlook.com |
---|---|
State | Superseded |
Headers |
Return-Path: <gdb-patches-bounces+patchwork=sourceware.org@sourceware.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C474838582BD for <patchwork@sourceware.org>; Mon, 22 May 2023 14:42:36 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org 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 <gdb-patches@sourceware.org>; 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 <ciaranwoodward@xmos.com> To: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org> CC: Ciaran Woodward <ciaranwoodward@xmos.com> 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: <PAXPR09MB5583501A5BABF34867A616E5B9439@PAXPR09MB5583.eurprd09.prod.outlook.com> 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+2jONvEOJ5T?= =?iso-8859-1?q?v7RNXZgMORYT0ff+PNpE+rnqlfAoSOThuYGTshYQZnQTZURwkBOcvDd7qC9o?= =?iso-8859-1?q?Rl97vEy/sDe4YVFXhlELbMraQsqBz2hHr3QHkRsrTJps1hHnH7dK98Y1a6Sp?= =?iso-8859-1?q?QaJLoY1bMPn8Nz+gRhUFeH1G4AV42D86b8xiZio2/43MhnOfo1E/o+Y+D00l?= =?iso-8859-1?q?EmOaVTvK51QHJHPREh/C2S0/Fhvx70XCSRmn43Jp5dEDj324Qf0xgkO/5cGK?= =?iso-8859-1?q?Tvy+7CxZ1IQSPZCUecCeZedkyABS9oDHssyhrywkNkJzQsZEktOWXpd2UQ1m?= =?iso-8859-1?q?4nA7UcwKtwYtUhmnuE7isLmalGOZtEPk3XXevlEL/UOYLzRA/HBkZic1jmbD?= =?iso-8859-1?q?DF2lDIUW31A8sZugft8ohgAnjrFhgezpEqXBGqttG4lEiClKC9MV/sSgm2WE?= =?iso-8859-1?q?xqtkwfbjVQf5YdSNSRuttfJFQ6gjqwNXA/JMSnATKDIB0fZy+WwV94Rq61+N?= =?iso-8859-1?q?G1uRXBZVIWBmT+06XKlq/n7zAQ5lU/yCpD28iv6NqKNSAbmKb3GaWvxg3vfe?= =?iso-8859-1?q?sQ/Zm1VYNCJOrr03xhPvWUPTZNgayVXmeP/n7mDkls812+UCrROpKFUCtcVl?= =?iso-8859-1?q?/ZpZWzvVmSAtWopUk557IolPtbVVhZaD43eXvYuwHxDjqD/DhFpXQJ57yi8c?= =?iso-8859-1?q?vncoky4amwhxYWMOE2grwQ9gQDzQlsfXbuvth/fcTQ1CVip+17SOqGSuoj3X?= =?iso-8859-1?q?UGl9+C6efOA3ho5Mz1umbSnv/o29j5NHNYmVK8YMtvHs73uc8mYmwgQwXgag?= =?iso-8859-1?q?e2IXk6Q/P9hh122E3IFDmjRx6bIR9J31MdM23l8YVKvXsb0IGFaEOtJR8FY0?= =?iso-8859-1?q?A2fRSCCBGhx3xSNwDnxKYkiMDWx78X/xSAcRQ2qfsMOFC8Kc86qkDOx8AnuU?= =?iso-8859-1?q?urlQK7eDNAKcTkrd6GDVpcK9klJM+uNm7E1cBu/GJLO9AEm/04tXpG3L+2pt?= =?iso-8859-1?q?EImsHDxfvzrwbjeovUHgYYFalJh9YtMO2cJVyoUscbwUGqbS5QhhLyOPXW8h?= =?iso-8859-1?q?cB/Qyca8OsTSea20mZl1iAXGrik6V5Pg7y74SCVVoZ+gsHOih0X/j6o73lhJ?= =?iso-8859-1?q?8MtuFLaCnDhGN2/0qY8YPYPcxVqaSBFTL0xqizhvA8tkFe48hiGOIZsOv/kM?= =?iso-8859-1?q?+Fj3ve94yOvn80LB0QASgMRCEy/HYl8TuYHcy01Gb1BEQpF18V+G/R1lxBdK?= =?iso-8859-1?q?xOW/IlcrcOMuvu3uUvGDyJmp+ZgOBex2sEyGZQsb0dvIxebKzB+tX+Tw6tM9?= =?iso-8859-1?q?Hi3MmrllCWmYSb9vIGTnyTfKRIzUNrmHjh59lKbrqguYU7pZMiaRvn5v1w3L?= =?iso-8859-1?q?iUrvFdZVjlnCJ7cRQ2wnzf27KE5U8pSwOTnZmiLT1o8mFWoDNNcPgXLapwbI?= =?iso-8859-1?q?7qShMd3PuM1Dhm5yubqMAvFvNR3jYL458s3dCPs+Xw/sqOnJar7+FCx5DgGm?= =?iso-8859-1?q?c6zhufTj7IMlzz9IKeO7hi//BrarqxAmG9YvCUHiAEMzTaUVJbZ4byLWZqWO?= =?iso-8859-1?q?nq0LNmUR8UEONhlRk9zoONAgknwAeeJOKB0px5YKQ8OSJK9cObbX4le4N35q?= =?iso-8859-1?q?OMeXBIbFeAKmBo2gi?= 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 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list <gdb-patches.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/gdb-patches>, <mailto:gdb-patches-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/gdb-patches/> List-Post: <mailto:gdb-patches@sourceware.org> List-Help: <mailto:gdb-patches-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/gdb-patches>, <mailto:gdb-patches-request@sourceware.org?subject=subscribe> Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" <gdb-patches-bounces+patchwork=sourceware.org@sourceware.org> |
Series |
Fix scoped_value_mark not working with empty value chain
|
|
Commit Message
Ciaran Woodward
May 22, 2023, 2:42 p.m. UTC
The scoped_value_mark helper class was setting its internal mark value to NULL to indicate that the value chain had already been freed to mark. However, value_mark() also returns NULL if the value chain is empty at the time of call. This lead to the situation that if the value chain was empty at the time the scoped_value_mark was created, the class would not correctly clean up the state when it was destroyed, because it believed it had already been freed. I noticed this because I was setting a watchpoint very early in my debug session, and it was becoming a software watchpoint rather than hardware. Running any command that called evaluate() beforehand (such as 'x 0') would mean that a hardware watchpoint was correctly used. After some careful examination of the differences in execution, I noticed that values were being freed later in the 'bad case', which lead me to notice the issue with scoped_value_mark. --- gdb/value.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) -- 2.25.1
Comments
>>>>> "Ciaran" == Ciaran Woodward <ciaranwoodward@xmos.com> writes:
Ciaran> The scoped_value_mark helper class was setting its internal
Ciaran> mark value to NULL to indicate that the value chain had already
Ciaran> been freed to mark.
Thanks for finding this.
Ciaran> scoped_value_mark ()
Ciaran> : m_value (value_mark ())
Ciaran> + , m_freed (false)
These days we prefer inline initialization...
Ciaran> + bool m_freed;
... i.e., adding " = false" here.
This is ok with this change.
If you don't have commit access (I didn't look), just send a v2 and I
will apply it.
Tom
diff --git a/gdb/value.h b/gdb/value.h index d042d816409..85a33abe7d7 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -1155,6 +1155,7 @@ class scoped_value_mark scoped_value_mark () : m_value (value_mark ()) + , m_freed (false) { } @@ -1170,16 +1171,17 @@ class scoped_value_mark /* Free the values currently on the value stack. */ void free_to_mark () { - if (m_value != NULL) + if (!m_freed) { - value_free_to_mark (m_value); - m_value = NULL; + value_free_to_mark (m_value); + m_freed = true; } } private: const struct value *m_value; + bool m_freed; }; extern struct value *value_cstring (const char *ptr, ssize_t len,