From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 8N3ZNGM2iWCuHwAAWB0awg (envelope-from ) for ; Wed, 28 Apr 2021 06:18:11 -0400 Received: by simark.ca (Postfix, from userid 112) id CAEFB1F11C; Wed, 28 Apr 2021 06:18:11 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,RDNS_DYNAMIC, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 6AEF01E783 for ; Wed, 28 Apr 2021 06:18:10 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E73FC3938C02; Wed, 28 Apr 2021 10:18:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E73FC3938C02 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1619605089; bh=MalpDOJ/1cLQpGSRP/TOB8FZztiemyvvJ0jUQaOjKqE=; h=Subject:To:References:Date:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=OOgomEzVJxXOUpLFH0iMqKUIDpC2XmwYR2o5496vpTjUcuMs5EXjn4r7e9NjxSNM+ zFsJ5jWlRMF1GMhIbpUr71dSV9IZfc2nrh/7tCtQgPGZmvYXNKvHLQ9GNERox8ybfR MNsWJS7ku3269V0EJmGN09J/bUwFIhJ0PSUpuNq0= Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2080.outbound.protection.outlook.com [40.107.93.80]) by sourceware.org (Postfix) with ESMTPS id E9FA1388CC1E for ; Wed, 28 Apr 2021 10:18:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org E9FA1388CC1E ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O0COB/hzyHHXqoyehqMP1Q+FQg22Z+7HZRGiNPcBWGkyyMHVAJylaowRXdvaOuP60o5LhpILx8l97t7Tt55gfokvo6MArLHR78/CdqqR8qOSHVct8p1zX0U46X/mNnZ40HnJkxZDXxI7nhHY8VgO+EuxgRnvUac5OZd/DkV2a0ODfBH/iYdpdsHPloC19QBOSZ/DzlY7iFCF4E2408uxJhqXclKh7iZ8P+tEY/YR4LTsenuRIX5qm9HaSiB5jKo9u5v6HoGDTVs9Eq+67oRASVbwi40mhtjORVF6i0dV8JVGstOuNRB8QPemcM4ikPlTqsO1rbq4ms8V/2MrBZUf4Q== 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-SenderADCheck; bh=MalpDOJ/1cLQpGSRP/TOB8FZztiemyvvJ0jUQaOjKqE=; b=nqT3nfviyvaSZ927ZfJGPqVgTL9JpmcUMTv7A0l/odpW+1FYmyZiaK8b6Q34RcJL+4v21NnUc/R2qEO7yfmCtpJOop0S2X77UMK2hl5fPk5cteYutFHqNytfZM6bncd3L6t56YjtVsimctQBf16LUUj3XRs3BgfRrvx5u8LrBwmrxsYmFE6BOhK465mG37GX4EyYcxGbEXTRx9Jxk3OPEBFzCHLr/LcQU6D34BVb7Kpo5kyrsyA+RHlL+fusI08cF6JrAZTN/jCKygYupgLxbT1EibfOwQd4uX/rsiCqZq6zuo8IMvBUCTnx5/i72fnRfXhw7kqYblwYiGVTBxh2nw== 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 DM6PR12MB2762.namprd12.prod.outlook.com (2603:10b6:5:45::15) by DM5PR1201MB0041.namprd12.prod.outlook.com (2603:10b6:4:56::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.26; Wed, 28 Apr 2021 10:18:02 +0000 Received: from DM6PR12MB2762.namprd12.prod.outlook.com ([fe80::49d0:1ee5:47ef:e0e5]) by DM6PR12MB2762.namprd12.prod.outlook.com ([fe80::49d0:1ee5:47ef:e0e5%7]) with mapi id 15.20.4065.023; Wed, 28 Apr 2021 10:18:02 +0000 Subject: Re: [PATCH 01/43] Replace the symbol needs evaluator with a parser To: Simon Marchi , gdb-patches@sourceware.org References: <20210301144620.103016-1-Zoran.Zaric@amd.com> <20210301144620.103016-2-Zoran.Zaric@amd.com> Message-ID: <33656bad-0e3c-95eb-1dcf-5357cf861422@amd.com> Date: Wed, 28 Apr 2021 11:17:27 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.9.1 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [2a00:23c7:5a85:6801:f5b0:44e8:2b3e:76c1] X-ClientProxiedBy: AM3PR07CA0123.eurprd07.prod.outlook.com (2603:10a6:207:7::33) To DM6PR12MB2762.namprd12.prod.outlook.com (2603:10b6:5:45::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2a00:23c7:5a85:6801:f5b0:44e8:2b3e:76c1] (2a00:23c7:5a85:6801:f5b0:44e8:2b3e:76c1) by AM3PR07CA0123.eurprd07.prod.outlook.com (2603:10a6:207:7::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.8 via Frontend Transport; Wed, 28 Apr 2021 10:18:01 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 962f6caf-34e2-4bc3-80e1-08d90a2ee798 X-MS-TrafficTypeDiagnostic: DM5PR1201MB0041: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KqLefcttp/5NXnCMGbxfrZff5wkG7KTCyLKbk/5jH70Q0QIyIWzJ/X/dM+a41mGKLWcsKg/9IBuXToHrQz7MJ1vgv7gliVPcKGob/31ArQJsLaTBEiDQaVxj7UtqduOQ1Sm8c6FbVKvMManbk/H3bAEyCK/HGw2Llx8ZGR+92DvcGKYKYxvg3Soph34JbDqBrnt8hH2hd9o43NwVsSLZcyzu4wGblzPFuVHxz+mj73Me73iUazzg+F7WfGthxQnLDBgDuFsoOrccBCrF7C/55W25GFmMHUAdAUHWJ9gbg6BAFgw+7e6YD/UJLE9EI/MM8M94K9gi+/dqCLZwRcju9n8ankHEXLzCM6XtNl5xQ4ewNqsU9e7SxRyB4OGNOAJtgB6Zk+uebwFtWtGxoO8UQxXXLE/M5XJeFiQOJzX6eKqz+POXPkbEZMqyCPU9fL8uLkbFvchPfUf4hS3cbEY+YpYh7d+QTOmSCMGSdoY/4YgyChMd9cvdoAcsDjwVh2cpGnpILtkscXCnCfnmn/tH1VRLP7W0laOQd5/4/VQqg6adz9oIZpva5qWtPvEhu213NosR6+dqwdTeZ2yoKkeiqkZ6d/WetQk1crzo0/58pBUNGcl7erZCJYVk0GgHZRSwyE6ppsDyGm8RB9+CgcbTs5/NsJXKtshJOu04I7x60JFroJJ4pd/BfY6H427y3nS9 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB2762.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(136003)(39860400002)(366004)(396003)(346002)(38100700002)(86362001)(36756003)(478600001)(5660300002)(316002)(8936002)(52116002)(6486002)(16526019)(186003)(2616005)(31686004)(8676002)(6666004)(31696002)(66476007)(66946007)(83380400001)(66556008)(2906002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?UGJLT1V6ZVFUVmMvWmdTRitrWkJJVlc5ZnFnd3BaeXFIb0U2WGpJMmdZV2dz?= =?utf-8?B?WHREMzZ5dUN2R1lDRkMrZHNtbDhka3hZU0VPQ1hQU00xSU1xTjUwNVRJRCtq?= =?utf-8?B?TkFQTzdSSzlBajVrNld5ZWZUOG5RbGZLOWdwV2JtYklEWWVqaGI0S0dzbTVl?= =?utf-8?B?c25INWlUdVl5MnlNTEdCRWozWGtrbEZubWZyZC9vdTRIVGZLU01FWkJnaTNj?= =?utf-8?B?enl1SHE2Vk9yU1pJbHNFZTlyR0NjUU5qMFZNMnJZYUxkRTIyU280VnZWdmRp?= =?utf-8?B?c0o2N2dSbUg1bklwN0pYRVdUakJrUmVwMkFSNU96YTBxS1RUcnliK3dTMWo1?= =?utf-8?B?TTVTZW16STVNUGVSdUdkdHJRR01vQjEwVW9SWFhkRXozcktIdUQyeVVOVFhX?= =?utf-8?B?T09ZTDhTenlFUDVtUTZ1ZHBxdU03Sm03d0NFOWUxTjN1ZjdoNnVaRW4zemxH?= =?utf-8?B?cGN6UU9wd05UcFNIZDliNUcvT2FYNUM1cUtOc3c2K3U3SU9SN09HQTNKYU93?= =?utf-8?B?YXJ3TFhmU0RRbXJQWU5PYlVIdy9SM25BTStsb1A1N21HOUVNRmpNd0tzYXlu?= =?utf-8?B?M1ZyU1BpSGF0ZDM4L0JWcjFqZzJSdUNNWEdMNWUyWkFERlc3b3hnUnc3TmJO?= =?utf-8?B?d2k2YytvSHo5Y2NZU0h1RTAwR1lnZXJJQ1dRZHRYdldtQlNPVm9DNThJbmtC?= =?utf-8?B?QXpoV2xUbFFCYlEvcDlvazN3Ky82UFNnQ2M5NlpLZ0tURVBkbFovc1BrNkpF?= =?utf-8?B?alhMNnZtUGI4SlJJMTdXaldiMVNDREh5cTh0Z2F5enh4ejFDQXVZaTVnOGtr?= =?utf-8?B?VFBpQXVRd1dHYjhnRFNnS0JpOElEWldOVXFLSnM3V0I2MlhYdjIrdlZrdXI3?= =?utf-8?B?cWh2dlBhb3BERStSb2xPQ01mNUFvM3Q2S1Z5L24wNkFaSXUvWjJPUW9NUmw0?= =?utf-8?B?bjhndHhpcWhnT29rVmJ5blJydTBScFhxNExKUUNGR2ZBRnNURlpzK0s5Um5P?= =?utf-8?B?SG9ZcE9lM0lacm5vQnJQNkcwYUFrcTlYUkY5cE00WlBUMDdqWWo0V3R0eXkv?= =?utf-8?B?Mk80ZThSbjhGaGVuTm1JeHMxdVU2VXoxOVpnQUROem9BSHJnemJObXFqbk00?= =?utf-8?B?NmJNekNoWnlZUXlWNC9NaVpnT0R2bDg0QnVVb041WFhGMkRoTEdveE4wUWE2?= =?utf-8?B?ZGk1NVlBYUpBenpuc28yd0grSTNWeWNBRVgyU0JaS3RlWUhreFdIREJ5R01j?= =?utf-8?B?Qy9FNEhhZTNCM1JoYkxOYUZpZ1NXOFNqTEMvZlBKS2NPY3FQcjM1dTJncVBm?= =?utf-8?B?bGMyL3Z2V2RuNXp5NERFWjRxUjYvNElxOG1PQkRTZEYvQUdNMHZVUUpvNlRo?= =?utf-8?B?S29GcEtuMkowU1lweUYxbHlIS2FYajhucDhVdmJIYjNxTUFXVXFUek5SY0FN?= =?utf-8?B?bjBaUmhkbDlNNlViaVBLbmo2Ny9WbnZRRFR5ZVI0K3ZtcUNiWXA3WEUyYVh0?= =?utf-8?B?bDdlc3RGZWNVV2ZzREtFeDVmWHdvWjdRTmltVnRDMzJraHJ2Q3p4RWFibngr?= =?utf-8?B?VHUxQkpNQzFwZVhEMFFaQy94OFNndEdCL04zWlZGQ2lZZmNwQnNUcVJldDFK?= =?utf-8?B?NlhJdFY5MHlkSXFnRUFOaGF4NzhYOFR2WWZGOGI5ZUNHL1l3dUFsaEVQaEho?= =?utf-8?B?SXRhMHJFbDRkL29IUzdzYitEb0h2b25ibXJTQjA5VDNWV0xBYlEyV0g2NjNC?= =?utf-8?B?Sll4R0NDTmJBb2JRaXJoRnRwZUpNQ2o2OGY4R1VlaVNDcldVRlIzWHhXb2xv?= =?utf-8?B?a1ZKcUNqcnVBakpPNU9pZlAxUGZsUjBvRU9TTEZjUWhXK1pmRGd0VHJaVm1m?= =?utf-8?Q?HuC7+TacrH/Wt?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 962f6caf-34e2-4bc3-80e1-08d90a2ee798 X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB2762.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2021 10:18:02.2089 (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: MY0BH99VCB6D0FWd0/sa2Y/UwuMKTUx0mz5qW0G82XFAWnYgg8Y6IpUqIEEZ0Vqtu8d6hjGDJcwevw0mKgBoog== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1201MB0041 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: , From: Zoran Zaric via Gdb-patches Reply-To: Zoran Zaric Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" >> Some concerns were raised that a linear scan of the expression byte >> stream would have issues if a DWARF producer would try to hide some >> non DWARF related data after a control flow operation. Although the >> testsuite doesn't show this case, it is a valid concern, so one of >> the later patches in this series will address it by switching back to >> the then redesigned DWARF expression evaluator. > > While re-reading your exchange with Tom, I was under the impression that > traversing the "control flow graph" of the expression, visiting each > node only once, would be a good solution. It would avoid the infinite > loop problem, the "two branches" problem, and even the corner cases > where you have garbage in the middle of the expression, or if the > expression jumps in the middle of an instruction to re-use the operand > of an instruction as an instruction. > > Patch 39 changes this back to an evaluator, so I'm not sure if this is > what you implemented or something else, I'll see when I get there. There is no concept of a "control flow graph" in the existing gdb evaluator, there is just a byte stream that gdb either fully traverse and evaluates or it "fakes" the target access. The solution that Tom talked about was just an idea that he used in some other tool and would need to be implemented from scratch. The patch 39 switches the evaluator design to throwing the missing context exception idea which re-enables using the same evaluator for both purposes. Having a separate control flow representation is still a good idea for the future because it removes the need for byte stream parsing code duplication that is present in couple of places. > >> -class symbol_needs_eval_context : public dwarf_expr_context >> +static enum symbol_needs_kind >> +dwarf2_get_symbol_read_needs (gdb::array_view expr, >> + dwarf2_per_cu_data *per_cu, >> + dwarf2_per_objfile *per_objfile, >> + bfd_endian byte_order, >> + int addr_size, >> + int ref_addr_size, >> + int depth = 0) > > The wrapped lines above are missing one column of indent. > > Simon > Thanks, I will fix this in the next iteration. Zoran