From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2067.outbound.protection.outlook.com [40.107.236.67]) by sourceware.org (Postfix) with ESMTPS id AE48D3858D35 for ; Thu, 4 Nov 2021 11:32:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AE48D3858D35 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mhZ8jqEmAk8ePAYUcCpq5RZvtSr0DOndKrCP0W3pfXVTAtW9/z3E1o9LBH1p2tp35m207S9TUOHcLd/MTx3r3ueyMrPLLetgawx5QdH6/zPniych7KkUSor5LUDuM9osgdM7tGS0MjhdVxEhQHfvMMftzC6dbr3hYbLahDMJyeJ/qxHPM2iL9+T/vM5SMCTXXAVkk+FGwW3gZ3REr8xwo8TW8sXV5IRmyVpswlWLKHbSrNUVGT9jq+Ohs+kIxGYYZDHjF2zp997BfrkGzeqJMOesGhTKja7ftKGiUvARZhJL2pe9du05qIRg7dzboi1xDx7QfvOisyf32102z5+ypg== 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=thIVgPIG57YoGaynK7ot/4YEWZBzPcgsn/hpS0xJ2Fc=; b=Ekm7tAr/1IvYS2/pvohtVmWL50Qy+SFFWdggW08SMZuoL8vzTPALxJVbLQylwwb1B9iUIFKTOANvHJwXUowNGuNFXr5LOJ4padVj0f35gzZAfb2hRydJbpYf2/rOgTXpY0RGXW4X2jtnMAXC6GeBMYF0rM9TDWluePYnOV5tDHJxkQnW/E+JJVGUp+ivgqSgtj6uUWbiX2IWDtiHgX37SDOdy/sUkhoDsW4Dbp727bLES5wwjttaYL0a+NaOlR7e0tCceZtZelFypmxGigjMlKVSatjyFpcfDBtmgl1iytkXB1uNK+GdCef0Ha7/x0tVhvkUlG1Pu98mIIaLlbjRPw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none Received: from BN9PR12MB5065.namprd12.prod.outlook.com (2603:10b6:408:132::12) by BN9PR12MB5257.namprd12.prod.outlook.com (2603:10b6:408:11e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Thu, 4 Nov 2021 11:32:37 +0000 Received: from BN9PR12MB5065.namprd12.prod.outlook.com ([fe80::f908:e014:a94:a35]) by BN9PR12MB5065.namprd12.prod.outlook.com ([fe80::f908:e014:a94:a35%5]) with mapi id 15.20.4649.021; Thu, 4 Nov 2021 11:32:37 +0000 Subject: Re: [PATCH v3 14/28] Add new computed struct value callback interface To: Lancelot SIX Cc: gdb-patches@sourceware.org References: <20211014093235.69756-1-zoran.zaric@amd.com> <20211014093235.69756-15-zoran.zaric@amd.com> <20211026225001.3h5rebymgr67rayo@ubuntu.lan> From: Zoran Zaric Message-ID: <4e7f1034-d3c7-5054-4d66-80f67a539d04@amd.com> Date: Thu, 4 Nov 2021 11:32:32 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 In-Reply-To: <20211026225001.3h5rebymgr67rayo@ubuntu.lan> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P265CA0051.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ac::13) To BN9PR12MB5065.namprd12.prod.outlook.com (2603:10b6:408:132::12) MIME-Version: 1.0 Received: from [IPv6:2a00:23c7:1093:6301:5176:73b0:d1d0:121d] (2a00:23c7:1093:6301:5176:73b0:d1d0:121d) by LO4P265CA0051.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ac::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend Transport; Thu, 4 Nov 2021 11:32:36 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f9d02aed-f65c-460b-20e0-08d99f86cd90 X-MS-TrafficTypeDiagnostic: BN9PR12MB5257: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KD/dv/ymClZ8EcWVAPMQMklATWEkZc6Kyg3POqxfzf+blC2dat12n0cGaHI+hpeiwkx2kxZh/ivUKPPgXTJY0TiwRRn0uwmJ2Pngf0E45ZQ3Dd+EsJBDwILRJWGLlAefLinU+eUhejRc0n4Xqzg07g8Kvu48BxO0KB5d7CxmrUhit0ZiTSuPjaJpaAYU45DWMdFZB1FfdWHgTy8Mw+2pSQkHHRDSOigahBbn/zJrWxXTzhUC29S+xYNtTGYYK9mSA87ZQxB/V7SpXlOK/FYVSskB8fL4VI0H4UwsCiSXLwA2LJgCnjBrNSsadcCbjVC6Cy4zrdAY6aByzkgPteNPW9e8aFiK8N50xcI/XTTD7KisQ3awat6rjqt3vYhw2xQBwfmWC6wuXAL9+MCjuc0wxj9sh/INrOrtRbtoSWK32KrRjW83qWqDWj2WByp/2mS1gl2Anhc0z2YfzDVvVH3CHsC5LClhB+Os14BhFUWXsdmZMEbdPSLqTHyTOaKHrF4zGeV2Q+t/rqQD7RnVvsXjvsLRtVp2zM8co7Up8zWfWw+R+V1XCftYXOsBsvVGpxsI/ndUzJkVUnOKHfSyrOND0QLyebNT/2KVPb8gljhfDgxGUO481V8SyM2bz8RGqsjfGg/iPGDFAQr8fjfpgUkoUXDLm0siHwqHf5/SZfLbSDCKpMHQiUP4rJ1u1RAc5Fg+niALIivOD5/CBWsyXKTZOUGRDvgXwy1xm398xwXGCW0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR12MB5065.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(86362001)(31686004)(8676002)(66946007)(4326008)(31696002)(66476007)(83380400001)(6916009)(66556008)(6486002)(6666004)(2906002)(508600001)(36756003)(5660300002)(8936002)(316002)(2616005)(186003)(38100700002)(44832011)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?a3d2UG9PZm16V2J1QXRGbE9lbkZ0bGxkOE1IWkZXOVFsVXdlODFYb1RLSnk5?= =?utf-8?B?WHhhOVVZRURRN2RzRWhQYm1IN2F2NE9QenUvZEpyNHRYUUFvMnVCcklKZHlE?= =?utf-8?B?MXA4ZEhPUk1neDUzQkI4c0xPZlZZY0hrRzJHajR2UkJJTGpaSG9LUmFSNXRP?= =?utf-8?B?MlF4RXBKUUo5c2tPTitFT09tM0t0dnhOOG1tSmpYQTNNTjd0SFZ3Q1k1TTAr?= =?utf-8?B?OWJYSEVDTG1uSnpqVFMyQnpMbkl6VWgxVTVpbmdHK1MxcXlzNFFjQkFKNy9X?= =?utf-8?B?bExDYXBhY3FHYWlhZm83QUltdHVZZnFSRW5iQ0NDeXEzZlhBak5LVVFZVGt3?= =?utf-8?B?eHJqalpkY2I5c0pJNTdXSjNxVHhkR2o0c09lWm5YY1Nob0ErMkk4ZlNtMHgw?= =?utf-8?B?clJQOGVIR2hLcVB3Zm5yYzdjRG1MazRRdWVBQkJoWTFDV1lnN09ZL0VMdFQy?= =?utf-8?B?OGNGYktnUzNDZU1hQ2U5d0NTS3h5OGxlSUphY0hsbFZGL3B4S3F3S0ZQS3Vi?= =?utf-8?B?ejFJOWhtUE5ONDRUR05GT3o2dFQ5M2ZsYjZWMFJqWDJQOXMrT2ZlTG1FS1Q5?= =?utf-8?B?NGVveDhEMGdLQVFqcVY0d0xIeDZCUk15M01jM2tZL2Y2Tm9hOEpSOEg5eElj?= =?utf-8?B?eDU3NERFN05vd1RXOEdNYkNDd2lnVUlKU1I0M1ZYMzYyMENWenNnSEk3Tzhh?= =?utf-8?B?MXJWYTdJQnFaRndxdW1PZ2pDR1EzQTM3azllcmdGNTZ2Y3NpamZ4WUx6aWVG?= =?utf-8?B?UG81WnJGNGYxTzZFTzgzbXlFTVNDT3YzK1crUHlMZTFnTXJlUGE5NEZKa1kx?= =?utf-8?B?MzRlYTRLcjFVK2JTT3NKbytwOE1CSjRIaU5rb1FBcmdJNjlKY3FzNit4OXp4?= =?utf-8?B?VTJ3UDdoTkNOYzVKd05kMkFJenNvSzQ4bDBSOE1PUjVDOHl5aUxzaGxkYklN?= =?utf-8?B?aXRJSVM3Ym1UUXZRQzFvS3FBZ3FJcmxidE9PUUgwWHBYSzBZb0VOaGFXTXV6?= =?utf-8?B?eS85K2d3YUJtN09RZkNuQm8wZlk0dTY1NlBJQ0l3ZlNMWGJKMVFYQ2JPSjVH?= =?utf-8?B?V09qYnFleDloUHZVOEFJbS83N2R3dlBhSmlFRTV1Snc3eXFCMEFGUm54SDZw?= =?utf-8?B?eG91QmpyeHVuQnpWTC9Wak5TV29kT1U3bktOWUJ3Uk9JWkthayttYWpVR0VQ?= =?utf-8?B?NGlzUlArSUE4dmt2K1ZTOWNRM3M1c0JJd29lWHNCTWlzdXYxbUZUcGQwcmtt?= =?utf-8?B?QlhBSlM3YUFlYis0MFVyemV6RndtVWdOVkRUeG52M2p3WlRTY0ZlbFU0UGhm?= =?utf-8?B?dFNvbFhnS2ZocXJKZkp4bHdjakNFQzNycFA0ZmpuUkhIWWRnZWVHNVUxUkRS?= =?utf-8?B?U3pRbnIxeFVuV3graUhvMENXQVJTdTFUT3R6QjkwTWxRbjUwQnQvVURNUHBn?= =?utf-8?B?UXFmNmVNY0dkVTI2TDhoSXI4aFZCOGE2RVFmejQyc0pDeHpoeUlWWnQ2QndF?= =?utf-8?B?K05BVXF2SUREOWp0OW5qZ3pGY2FjS05wLzBjQldSU3lqUzFDaWR5em1PVG02?= =?utf-8?B?UmtFckRWc05sNFRpTnVHU1RmYnNVRWtaV3kzMk9IYnNDRVNxZmc2N28yUDdj?= =?utf-8?B?QzF0K2R1dGRHVVR4TXRzaFBLalRtdERiOXczLy9nc0tqVjVsaG8rNmYzQkcy?= =?utf-8?B?MFlGc0w0ZnExbzlvOUhUa2NmYzRVbm15eUNzYzVWVjVLUWl5enZjQjhOT0hZ?= =?utf-8?B?ZktDeFZHN0pOam9ocUNYZU01OThHRmxkRzM1cFlGZTFRSkx2TXV5S3VBd25M?= =?utf-8?B?SEJoOW9ha0svbTJ5aWo3TWw4REcyK2kwWk5MNlZOcEdsU0dvTmF2MTlCd2ZD?= =?utf-8?B?N0J3b1lQWFVHQjZ3S3BIbjdzVFdESmxZQzlROFRUUU02NWttRCtsZUxUZXZF?= =?utf-8?B?ckZtYWVjRFg4eWNDZy9hU1BkWDRXRUxsVXhLdHN4Q3RISVZVamVHdHJOM1d2?= =?utf-8?B?bXU1dm95amNtT0VTa0tZR0ZkOFllZk1CWEk0MmY4bEsrZElJdzFyRFFva1NV?= =?utf-8?B?NWkxMitWQ0gwUUdvSHZweFlzekRUb2RPTkppSE5pQ0pKbklKRmxCa1N2bzV3?= =?utf-8?B?b1NmQnN6SWFoOVdaVERQU3hIczJwYTNueis4YzJXUUJDV3k5eG9qTkN0b2tL?= =?utf-8?B?UndSTURJY3g5dDFRYjFSY0tmU0NYWGJDUjBqSjhrRkFoL1A0dXVuZDVxeEti?= =?utf-8?Q?t3DVkstmA0JHeGL+iCLD+jrl3Zv+EUBKWdK2JNKt8k=3D?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: f9d02aed-f65c-460b-20e0-08d99f86cd90 X-MS-Exchange-CrossTenant-AuthSource: BN9PR12MB5065.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Nov 2021 11:32:37.5333 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LdXF2o4epk+0AEO/s1RAVUIXk8CBpTeNFFsozIPP8V9nan20yQ3HNancrGGc/xWy5Wo3p+jMXzeZGCTo477Gww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR12MB5257 X-Spam-Status: No, score=-6.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, MSGID_FROM_MTA_HEADER, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Thu, 04 Nov 2021 11:32:41 -0000 >> + >> +class computed_closure : public refcounted_object >> +{ >> +public: >> + computed_closure (std::unique_ptr location, >> + struct frame_id frame_id) >> + : m_location (std::move (location)), m_frame_id (frame_id) >> + {} >> + >> + computed_closure (std::unique_ptr location, >> + struct frame_info *frame) >> + : m_location (std::move (location)), m_frame (frame) >> + {} >> + >> + const dwarf_location &get_location () const; > > Is there a reason not to inline this function definition as well? It > seems as trivial as get_frame_id and get_frame. > There was a reason in one of the previous versions, but not anymore. Thank you. >> + >> + frame_id get_frame_id () const >> + { > > If I understand correctly, m_frame_id and m_frame are mutually > exclusive. To be on the safe side, I would be tempted to add a check > here: > > gdb_assert (m_frame == nullptr); > I didn't want to force them to be mutual exclusive, but when I think about it more it makes sense to make them. Thanks. >> + return m_frame_id; >> + } >> + >> + frame_info *get_frame () const >> + { >> + return m_frame; >> + } >> + >> +private: >> + /* Entry that this class encloses. */ >> + const std::unique_ptr m_location; >> + >> + /* Frame ID context of the closure. */ >> + frame_id m_frame_id; >> + >> + /* In the case of frame expression evaluator the frame_id >> + is not safe to use because the frame itself is being built. >> + Only in these cases we set and use frame info directly. */ >> + frame_info *m_frame = NULL; > > I guess nullptr is prefered over NULL (across the patch). > Thanks. I will do another pass on those. >> +static void >> +read_closure_value (value *v) >> +{ >> + rw_closure_value (v, NULL); >> +} >> + >> +static void >> +write_closure_value (value *to, value *from) >> +{ >> + rw_closure_value (to, from); >> +} >> + >> +/* Check if a closure value V contains describes any piece > > One of 'contains' and 'describes' might be too much here I guess. > > Best, > Lancelot. Thank you, Zoran