From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id sOpMGBXTTWLZPgAAWB0awg (envelope-from ) for ; Wed, 06 Apr 2022 13:51:17 -0400 Received: by simark.ca (Postfix, from userid 112) id 5FE7A1F344; Wed, 6 Apr 2022 13:51:17 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RDNS_DYNAMIC,URIBL_BLOCKED autolearn=unavailable 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 E55591E787 for ; Wed, 6 Apr 2022 13:51:16 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 377B9385842E for ; Wed, 6 Apr 2022 17:51:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 377B9385842E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1649267476; bh=c+BXlD930lZB1DvU3wEdWG5eQB536P1zWQf5HwCGOL0=; h=Subject:To:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=Ql4stcJarGOqVlW19m9tqLh4m1GrI+U7u81lakiqjXyM5y5aenpvgyZAQ9oCEPqHI X/v9MHd1mGYLOdwc0Vo0oQxGP567h7BZI2BhcZdxkuzFLKep1G1i/Giyp40qtmQMca ZvG0EQlHYuQa8WK1BKveF3AFxOc6jvJcMYQrY/gc= Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam08on2054.outbound.protection.outlook.com [40.107.102.54]) by sourceware.org (Postfix) with ESMTPS id D45173858D37 for ; Wed, 6 Apr 2022 17:50:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D45173858D37 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kJ/mXwLNUDHFdwMOCR19Jvb/xGKd1LRQE49dxiATMTDc6DGUFpEsysYfbMrcPdb97TgnbP4Dj6JHKBNiD/p8jGR1fpNgy2A9aDP3fUZBTT81IrIsuzNvkaI1zcHS2+aO52Bq5i4VEkouHe1V4vYgw9oAGzuWyF2KWBwoJxNU+rFGhBrr7gMTm1M1fxCwOwxIiA+m/GWxGT0QOxfG2G3BntlRWeRVyeN9fwyRfu45IgN6JgUnFFR86Tz+SAZhoQH5YUHAD0UNG7GOOMieffmdMbnQGzN6PSTHPQh8k3QwtF1hZrvapHJjUHD0fG6rRkIEsqglJsCsLomapDECQxI4iw== 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=c+BXlD930lZB1DvU3wEdWG5eQB536P1zWQf5HwCGOL0=; b=Qn2UT498/zlKRWrmLvqU7j/XMgADSFurhuQXuaU5NTYm/k9fY+PEY8F1MW6ezB3huEMehKEADnW0H09h7FdrIMCxSGfz9hdMGKOuooU4qxWf9aPGWdM0Fm8IBnKd0kgkY9zM25YGjHxjkvVoznjav1CJFKjof/p0Pg0DvqOEgHF2aYZTYmXR/7+KWlc4+D55VKFfBXNUKp6f3nHwshjcgNiN++3xZzQeSmPmEYkcx/45fjCMYh1NfWfZ/WT4VyP8NiEmCVWeXmDgJiRCe56vWWyjH2OBXB6pKlt86kTSM3Ga4LyMLuni57s/AiqS4vuiotW4o+JTV6PnO/N6JxoG8g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=labware.com; dmarc=pass action=none header.from=labware.com; dkim=pass header.d=labware.com; arc=none Received: from DM6PR17MB3113.namprd17.prod.outlook.com (2603:10b6:5:6::10) by SJ0PR17MB4957.namprd17.prod.outlook.com (2603:10b6:a03:3b9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.21; Wed, 6 Apr 2022 17:50:53 +0000 Received: from DM6PR17MB3113.namprd17.prod.outlook.com ([fe80::3142:b93f:5fb9:dcc5]) by DM6PR17MB3113.namprd17.prod.outlook.com ([fe80::3142:b93f:5fb9:dcc5%3]) with mapi id 15.20.5144.019; Wed, 6 Apr 2022 17:50:53 +0000 Message-ID: <7cbef279bcf747bb1975d5928daed2bf35922e09.camel@labware.com> Subject: Re: [PATCH] gdb: skip objfiles with no BFD in DWARF unwinder To: Simon Marchi , gdb-patches@sourceware.org Date: Wed, 06 Apr 2022 19:50:46 +0200 In-Reply-To: <22e6f3e9-e065-e90d-7d98-9cf20aa30144@simark.ca> References: <20220405100429.188136-1-jan.vrany@labware.com> <22e6f3e9-e065-e90d-7d98-9cf20aa30144@simark.ca> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.44.0-1 X-ClientProxiedBy: VI1PR06CA0208.eurprd06.prod.outlook.com (2603:10a6:802:2c::29) To DM6PR17MB3113.namprd17.prod.outlook.com (2603:10b6:5:6::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8d5a60fc-1fd3-4298-85b0-08da17f5fe6d X-MS-TrafficTypeDiagnostic: SJ0PR17MB4957:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ftc7LWCcn3y57bFBZzeUaIY3DkhEdjmIxvvDzA2ESFGsP5yBHeYEHg2LMPBbV1xwjMI1pWtbEeQ34NLNaYujdWXGEfrrX/9cE8ZM2wIZn6JDmCfvLVLlEIJiqeBievADByMGRlit5ne9u1YXxooGhSBrOqxllraIcObktXGKJajx0Yf2Rsm6h/DqTFqzxB4SfErd21eZrTKhanA03VeUzHEPqQG7O4pDC/z6ICuumYYxxfKA+cNfvxF5/1nF2N9JsZGIRfN4EGp/fCQxGh5jVzeQODhuaRw1lELwyt03nVzOwkKpccseiL2BvFK20lWG2BKjswKe6gfOL4GzlA3hFQQLVrghFuTq/GCf/HwC1rPU+rGD8hsWLDC6HWubUn6cZQuuPFlDOB3m9EsIQ5Ydda/tLQVKnNu/vZhWaMtTnAGDT561jfptPT4SkgXgo7VLiZNoXeDpeYCt07e65SREbyuHlRe4rpeObT71khv0K3pnHENGzilP5ddAskwm4WAdLDJpzgJMRY3cEFWUB5hsC0pdzb89HWvbxSK0rUB5cef9NI1kb/sZ+yKSu4oDMqzFUVX2K35e3NN5gBBFHI+CS/6EbpTjPWPA0DLqtMG9+xMz8L9T+uE2buDnCN6Oitw5VAKtn6skGVnth8UnddflwYN9U5s/U+WD7+Q5nFMk68w1HCXgzCuWBMjwVQUr+aG8RRantfyncu5eRO1kU01yVA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR17MB3113.namprd17.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(4326008)(66946007)(66476007)(66556008)(8676002)(316002)(6486002)(38350700002)(36756003)(38100700002)(86362001)(26005)(2616005)(186003)(508600001)(6506007)(6666004)(52116002)(6512007)(53546011)(44832011)(8936002)(83380400001)(5660300002)(2906002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?M2oyK0FleGZEZi9mWjJWOVlZVWlhTWU5QUhra1hwUFF1MWpFMENyRUk1UHlC?= =?utf-8?B?c0hHYWZ1NGxtY05yRE5hK09DV09wYm5WQVhvY21iWTZsYWQya2lFV1NVbnRo?= =?utf-8?B?Tk56b1lrVHJZODFLeHVUZGlyVWlBYkVpSXJYN0YxbXNFZXFXRW5XdXVBMXZJ?= =?utf-8?B?SHA4VDV6SUlselBXZ1FjMkQwWGNaRlZxNDltQ3ZjVE1relBsN05hWm1TUHRn?= =?utf-8?B?c0R0bDFKVG42ZmFRbHpTMTB0bnBNSmxaclNsdFBKdVRFK1NnTjh5MUlTeGdM?= =?utf-8?B?RVJ2RWljMjFqQmR6cjIvdU1yOVNTQ0xLTzN1S2dXRGZ3eW05NkFsdFJ0YnlY?= =?utf-8?B?dVozTFA4UTdLeEF4WWNDSGI0UTN0WkQyL1dqU1NIZlIrTWltTXZ5UFF0eFpS?= =?utf-8?B?MUdKdHRUaWZnb3ltL3BGbzJRS1dzT2psS0pTVHpHSk9xWVNla3hXbkYrUzYz?= =?utf-8?B?TGdOMjdldE9LODJvQXdlQ2NxeDNMc1hzVktGRXhHR0ZsbnBaYjd3RTVVMmdC?= =?utf-8?B?ZDJWV1NrMVBQdU1KQ2JOUjlQekNLL2RkL3VrRFI5UW50aEI2Sk11dGgvU2NO?= =?utf-8?B?SHgzWWNrOGdZbUY3a2tUNit0R2VFWFIwUlBNaXFnMWdiTzRXMmlSSXZ3aVZr?= =?utf-8?B?QWFTaEFVQlBEaGROSWlDMERNUFdjcFZ6MEs0N0luN0YzM0Mzc1gvMFhscEJw?= =?utf-8?B?Y1VJMXgySUx5WU5IMWJwUjVZaWFLbVh1MjgrUnhmb2F4bjEwKzIrZktRZy9Q?= =?utf-8?B?TzJBQUhoUllFMG1zaWozV1k4eXV6OFZaeG1OQmZ6UnY2RjY5VmVQT204WTNS?= =?utf-8?B?Q1o5d3Z1QVExZWhhNlp3REdQYnRZQ09vR0NPZlZpVHhzeCtETndtVmNackFy?= =?utf-8?B?NERKSkVDYk9VekRKK1B2bHhzbzhNNGhvU2ZBcFRvZGVENmhIc2t6bHVNcmFY?= =?utf-8?B?bStGMGtEcndDbklEaXArZUVXVDV4SDgzSTlFYnZXRXI5eCszbTljWEtlRU5U?= =?utf-8?B?dGpldlJMbW95TEs3amxTZjdjNC9JWm1NaUxrQm5PdzN3YVZKdkRTc2lTMjF3?= =?utf-8?B?dmt4Vldidy93Y2lLbG5pZFliaDR1ZnlFUDFGRmx3MHRhQ3lpanNmaWxvdXgv?= =?utf-8?B?WGNPZ0FDenI3RVRueCtQWEMwYlF4RU9IUnptRy9FOS90bjMvWTRYWnBJMUcw?= =?utf-8?B?SjhzcXhlZGJOa20vUGJvdHZqTWZnb2VyVGpkcVdydHBlVDBkdmxpUWplanRl?= =?utf-8?B?cUZDMkJSU210WXZsL1VTcmV5M0tMOWRNTjRSS2NwaEZOQ1Y3ckkwS3RpMnFS?= =?utf-8?B?QXNlMTJ5a3ZCbVRuS3krSHF6aWcvenJobVNPMTByMHJ3c0ZBOUNHdGFqdW1o?= =?utf-8?B?OS9rd1JmT1ozQnVoWFpLWGtrZVh4ZWRaamw4YWU5L2owMFA2QVR6MlFBN0pO?= =?utf-8?B?RzQ4cjArKzZYaUpTQTE5NUR5MDZ4c2ZFTXZ5a2REMnNydWVQUTBTTkhUVzNV?= =?utf-8?B?c2xPQWRTdGdJdVB5K2hQVFZxRmtJMDBvbVZ6T1BFVm52dnk4RWg4MHNzb1BC?= =?utf-8?B?aVRFWlR6bk9IUWc0cGdScXhUYXFZeWkwUGFVN1ppVjBtaDU0bVdzYTJVclIx?= =?utf-8?B?NEZhK1dLM1U1Q1dhcTF4K0ljMmZLMHRuRVZoVXhxbG1XdUNjeHBmaFVtT3JW?= =?utf-8?B?U2xWVHJzREVsKzFCcnZNMFRlWGdJNEUvSXhlOXVFcmFUZUUzYUpuczRvUzNQ?= =?utf-8?B?VTExSGo3Qk5qSkxuZTRpRC9obmMvSHJxN0YwSysvZzM4aGY4VkloZVJZSGhV?= =?utf-8?B?L2pxR2dMeDFoS0xBZkdwYlRjNmxVQ2MxeGtKZ01HU2tjbkFOTHNwRTlUWWI2?= =?utf-8?B?ZTVFaDVKSFNJWFZZS1lZV0tFd1I2U2hlVFBJTUFKMFNKVWZqUy80Z1NUeUtl?= =?utf-8?B?VGIvbkxaZ0Y3R3pidlJMQWd6Mk53Y2lydmFXa3RucGZZbFFDeCtOZy9XV3Ew?= =?utf-8?B?S1dPc2lWN3B5UGJ1bG1LdmpwRkRpZmZLam1sK2VjZkIwTnFmSkFXM1A5L1Yx?= =?utf-8?B?ZkFhZXhCVEZMRGM4RWowZEczWFpxZHc1M2tCbVZJNjNPd1gxNzhBMjcxME5T?= =?utf-8?B?ZkFFemNoVXpQcHF3Um1sS0kyaSs2STJYVVdoMncrOWVkbU9BWC8xc2p2R1Nr?= =?utf-8?B?ak5EcXFPbnF1dlhPMFFuRmI3N0lmUXo1ODF5RDFrRVVvVC8rQzYwSWNEaGJF?= =?utf-8?B?MW1kUHB2MEpmazRaYlNqVUZxb1NBQXExY2hFZkF5c25zbVZPK0hXQ2tJOWFv?= =?utf-8?B?dEg5U0ZhZGk1a0ZJdGhhM2tiNEJaRzZxbmQ5MTU1Ny9pTEpBZmRSUT09?= X-OriginatorOrg: labware.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d5a60fc-1fd3-4298-85b0-08da17f5fe6d X-MS-Exchange-CrossTenant-AuthSource: DM6PR17MB3113.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Apr 2022 17:50:53.2956 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b5db0322-1aa0-4c0a-859c-ad0f96966f4c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KXLYo7I3MXuUnauiNUdop5+1AQx75eSNL12pm5zq3fuOaIqlfw8QVcRpYHTLSI6C4BBZp06OLkzlN8rTnH4UwA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR17MB4957 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: Jan Vrany via Gdb-patches Reply-To: Jan Vrany Cc: Lancelot SIX Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" On Tue, 2022-04-05 at 10:46 -0400, Simon Marchi wrote: > On 2022-04-05 06:04, Jan Vrany via Gdb-patches wrote: > > While playing with JIT reader I experienced GDB to crash on null-pointe= r > > dereference when stepping through non-jitted code. > >=20 > > The problem was that dwarf2_frame_find_fde () assumed that all objfiles > > have BFD but that's not always true. To address this problem, this > > commit skips such objfiles. > >=20 > > As for the test, I initially tried to use temporary breakpoint and then > > 'continue' to get out of the jitted code but this for some reason did > > not trigger the crash. Using 'finish' to get out of jitted code followe= d > > by 'next' triggered it. > > --- > > gdb/dwarf2/frame.c | 3 +++ > > gdb/objfiles.h | 4 +++- > > gdb/testsuite/gdb.base/jit-reader.exp | 10 ++++++++++ > > 3 files changed, 16 insertions(+), 1 deletion(-) > >=20 > > diff --git a/gdb/dwarf2/frame.c b/gdb/dwarf2/frame.c > > index 5878d72f922..514ae8c694f 100644 > > --- a/gdb/dwarf2/frame.c > > +++ b/gdb/dwarf2/frame.c > > @@ -1565,6 +1565,9 @@ dwarf2_frame_find_fde (CORE_ADDR *pc, dwarf2_per_= objfile **out_per_objfile) > > CORE_ADDR offset; > > CORE_ADDR seek_pc; > >=20 > > + if (objfile->obfd =3D=3D nullptr) > > + continue; >=20 > Ok, I presume that this is the case only for JIT-ed objfiles whose > debuginfo was created using the JIT debug info reader API. If the JIT > engine produced an executable file in memory with DWARF in it and we > consumed it, then I suppose that objfile will have a bfd, since it was > opened and parsed using bfd. Exactly. jit_bfd_try_read_symtab() calls objfile =3D symbol_file_add_from_bfd (nbfd.get (), ...); >=20 > > + > > comp_unit *unit =3D find_comp_unit (objfile); > > if (unit =3D=3D NULL) > > { > > diff --git a/gdb/objfiles.h b/gdb/objfiles.h > > index 8bd76705688..429dea1da4c 100644 > > --- a/gdb/objfiles.h > > +++ b/gdb/objfiles.h > > @@ -636,7 +636,9 @@ struct objfile > > struct compunit_symtab *compunit_symtabs =3D nullptr; > >=20 > > /* The object file's BFD. Can be null if the objfile contains only > > - minimal symbols, e.g. the run time common symbols for SunOS4. */ > > + minimal symbols (e.g. the run time common symbols for SunOS4) or > > + if the objfile is a dynamic objfile (e.g. created by JIT reader > > + API). */ > >=20 > > bfd *obfd; > >=20 > > diff --git a/gdb/testsuite/gdb.base/jit-reader.exp b/gdb/testsuite/gdb.= base/jit-reader.exp > > index d94360cd7d9..0de552b1ce5 100644 > > --- a/gdb/testsuite/gdb.base/jit-reader.exp > > +++ b/gdb/testsuite/gdb.base/jit-reader.exp > > @@ -271,6 +271,16 @@ proc jit_reader_test {} { > > "#1 ${any} in main ${any}" \ > > ] > > } > > + > > + # check that the DWARF unwinder does not crash in presence of >=20 > Capital C to "check". >=20 > > + # JIT objfiles. > > + gdb_test "fin" \ > > + [multi_line \ > > + "Run till exit from ${any} jit_function_stack_mangle ${any}" \ > > + "main ${any} at ${any}.*" \ > > + ] > > + gdb_test "bt" "#0 main ${any} at ${any}" > > + gdb_test "next" >=20 > Please take in consideration Lancelot's comment, the patch LGTM with > that feedback addressed. Sure! Thanks Lancelot! Jan