From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailsec113.isp.belgacom.be (mailsec113.isp.belgacom.be [195.238.20.109]) by sourceware.org (Postfix) with ESMTPS id ACBFD384F4B1 for ; Mon, 21 Nov 2022 21:07:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org ACBFD384F4B1 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=skynet.be Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=skynet.be DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=skynet.be; i=@skynet.be; q=dns/txt; s=rmail; t=1669064836; x=1700600836; h=message-id:subject:from:to:date:in-reply-to:references: mime-version:content-transfer-encoding; bh=b+TJEY6Te3uKzHlvSZAlN0R0ulHoGM9zR0jl3C5Tows=; b=k4VgnaLwlNRyB2+9EnwxV0fVRppCEGVjN3FWI7QL2MiGd9H0fqynhK4r Wg+8QWxy7q5WFZcRLVrGD6d+QbJnF5VOATMfm2h285uwC+bGhbk/J1yQt CpQnVgwVQhFy3r//foqBbfwC/NLLE33Zr7FD6RivWf32ZUsBcNzdqHxr1 8=; X-ExtLoop: 1 X-IPAS-Result: =?us-ascii?q?A2BnAQBj53tj/1uGgG0NTYEJCYFGgzGBWIROkRoDgROcH?= =?us-ascii?q?oF+DwEBAQEBAQEBAQk9BwQBAYUFAoUBJjYHDgECBAEBAQEDAgMBAQEBAQEDA?= =?us-ascii?q?QEGAQEBAQEBBgQBgRuFLzmCQiKDfAEBAQECASMECwFWCQIOCgICJgICVwYBE?= =?us-ascii?q?oJ+gn82l1WbHXp/M4EBg1ABgSCaZYFhBoEULIkAg2CEMDeBVUSBFYJzBzA+g?= =?us-ascii?q?ksXAQOBXoNXgmcEkgaFbhw3AxkrHUADC20KShtYDgkfHA4XDQUGEgMgbAUKN?= =?us-ascii?q?w8oL2crHBsHgQwqKBUDBAQDAgYTAyACDSkxFAQpEw0rJ28JAgMiZQUDAwQoL?= =?us-ascii?q?AMJIR8HFhEkPAdWOgEEAwIPIDgGAwkDAiRWdS4RFQUDCxUlCAVLBAg5BQZSE?= =?us-ascii?q?gIKEQMSDwYmRg5IPjkWBid0Dg4UA16BaQQ1gXEKmi2BaS1EFigJCiyBEQ8lC?= =?us-ascii?q?B8nH5JkB5IYnUY0B4NrgUcGDIl0lQcyqRaXNCCNI5o1gWkGgghtgzpSKI5Xg?= =?us-ascii?q?zuKX3QLMAIHAQoBAQMJimIBAQ?= IronPort-PHdr: A9a23:KktffBFGdXNPisMaORz7AZ1Gf3dLhN3EVzX9CrIZgr5DOp6u447ld BSGo6k30BmUA86Ct6kMy7KP9fy6AipYudfJmUtBWaQEbwUCh8QSkl5oK+++Imq/EsTXaTcnF t9JTl5v8iLzG0FUHMHjew+a+SXqvnYdFRrlKAV6OPn+FJLMgMSrzeCy/IDYbxlViDanbr5+M hq7oR/Ru8QXjoduN6k8xxXUqXdMZ+ha2HlkKF2Nkxvy/Mu84IJv/yFNsP896sBMVrn3cb4lR rJCFjQmNG415MzvtRbdSAaE+2URXGYLnBdWGgbJ9B71UIv/vSv8rep9xTKVPdbqQrAuWDSt9 LlkRRn1gyoaLTE58WXXisttjKJHpR+quhJyz5LIbIyTKfFzeL7Wc9EHSmpbRstfVDFPDIOiY YUBDeUBM/pXoIfyqFUBtha+GQqhCfnzxjNUnHL736s32PkhHwHc2wwgGsoDvm7UrNX0MKcSU Pi1zLHWwj7eb/xZwy396I/RchA8oPGDQ6hwcdHMwkQoDwPFjlSQqYjkPzONzuQCrXKX7uR6W uK1jG4nshxxojmxycc2kYnEnZkVylPE9CV/3ok1Oce0R1VlbtO9FpZbqi6VOZdsTMw4X2Fop Dg1yqcAuZOjYiUHxpopyhDQZfKIc4WF/hbuWPqfLDp8hX9pZbyyihmv/EWj1ODxVcu53VhLo ydbktTCuHQA2hjS58WJRPVw8UGs0iuB2QDU7+FLO0E0lazDJp4uw74wip4Tvl7YESPshEr2i 6qWe0M58ear8+TqeqjqqoOYOoNulw3yLKcjltaiDek2PQUCRWyW9fm62bb+50P2Wq9Kgeczk qTBtZDaItkUqbChDg9O14Yj9w6/DzC70NQEhXUHLExKeBaAj4XxP17CPfT1Aemlj1ixkTpmx OrKMqD7DpnQKnXMlq/tfbd760FC1Ao+1c1T645QB70bPf7/REz8uMbFAhI3PAG42eLqBMhl2 oMbQ22PA6uZMK3IsV+P4+IiO/GMZI8UuDb5Kvgl/+bugmEjlV4TZ6apx5wXaGmlHvRnPUqZe 2Hsj8waEWcJvgs+SvLliEGYXTFIeXm+R6Q86SojB4K8EYjDXpytgKCG3CqjAJFafnpGBUyUE Xf0a4WEXO8BaDmTIs9kiDMET7uhRpQ61RGvsQ/10aBnLunO9iIEr53vzMJ16PHLlREu6Tx0C NyQ026QQG5vh28IXyU53Lxjrkx91FiDyrN1g+dfFdxO/fNGThk1NJDGwOxgFd/+QAXBfs2GS AXuftLzOjA0SdR55tYUaEZ8U4G5jxXKxSmCGL4QnqaIQpc9pOaU0HT7Yt50133G2bIJlF47W MBCKmS8i+h47QeAKZTOlhChl6eudLwE0Wby/X2E1HePsVtDGFpoUaTBXGgHaw3JpM7+/17DQ qW1Ia8kIw1M1YiIJ/0ZOZXSkVxaSaK7a5zlaGWrljLobSs= IronPort-Data: A9a23:g2dkpq1OrU1zvVAHmfbD5bRwkn2cJEfYwER7XKvMYLTBsI5bpz0Px 2oXDTuEbKmLYWH9eY9xbYzioB8A7JGDnNJnHVM63Hw8FHgiRegppTi6wuYcGwvIc6UvmWo+t 512huHodZxyFDmFzvuUGuCJhWFm0q2VTabLBufBOyRgLSdpUy5JZShLwobVuaY1x4nna++xk Ymq+ZeGYQX8g2Qc3l88sspvljs+5JwehxtF5jTSVdgT1HfCmn8cCo4oJK3ZBxMUlaENQ4ZW7 86apF2I1juxEyUFU7tJoZ6nGqE+eYM+CCDV4pZgtwdOtTAZzsA6+v5T2PPx8i67gR3R9zx64 I0lWZBd1W7FM4WU8NnxXSW0HAl+PpRJ4LH2D0O0kt7Mz02fSyS2nq5hWRRe0Y0woo6bAEl9r K1CbmlTPlbawbvn9dpXSME13pVldZO7etpE5jcxlFk1Dt5/KXzHa73K5NtZxC89wN9HB/HHe ssUcyFHdxfRZRBTfF0aYH47tL7y3yihI2ED9Dp5o4IK7nnt9QUo8oSqH9vOQt/SeJ1YlBuh8 zeuE2PRR0ty2Mak4SGE93u2hcfUnCbyQoFUH7TQ3vFmihiLz3AYCBANfUC8vOOyh1G3Qd8ZL FYbkhfCtoBjrQryFYW4Bkfo5Sfc71gVV8FUVuEr7keM0bKS6QudCWEPSTsHYtFOWNIKeAHGH 2Shx7vBbQGDepXMIZ5B3t94Zg9e9cTYwaHuqMPEocY4DwHfnbwO IronPort-HdrOrdr: A9a23:6aXEI6uQuIehpg0fOLLxRBZu7skDY9V00zEX/kB9WHVpm6uj5q WTdZUgtSMc5wx/ZJhNo7290ey7L080lqQFg7X5X43IYOCOggLBEGgh1+rfKlbbcREWmNQw6U 4tSdkcNOHN X-IronPort-Anti-Spam-Filtered: true X-ProximusIPWarmup: true Received: from 91.134-128-109.adsl-dyn.isp.belgacom.be (HELO [192.168.1.19]) ([109.128.134.91]) by relay.proximus.be with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Nov 2022 22:07:15 +0100 Message-ID: <8734702f370e2f45d9d1a66e48978b9a7b461164.camel@skynet.be> Subject: Re: [RFA] When getting the locno of a bpstat, handle the case of bp with null locations. From: Philippe Waroquiers To: Simon Marchi , gdb-patches@sourceware.org Date: Mon, 21 Nov 2022 22:07:13 +0100 In-Reply-To: <837bc907-5488-aa04-b656-b4ab9319519e@simark.ca> References: <20221120173024.3647464-1-philippe.waroquiers@skynet.be> <837bc907-5488-aa04-b656-b4ab9319519e@simark.ca> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3.5 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS,TXREP 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: On Mon, 2022-11-21 at 10:04 -0500, Simon Marchi wrote: > > On 11/20/22 12:30, Philippe Waroquiers via Gdb-patches wrote: > > The test py-objfile.exp unloads the current file while debugging the process. > > This results in bpstat bs->b->loc to become nullptr. > > Handle this case in breakpoint.c:bpstat_locno. > > > > Note: GDB crashes on this problem with an internal error, > > but the end of gdb summary shows: > >   ... > >                   === gdb Summary === > > > >   # of expected passes 36 > > > > The output also does not contain a 'FAIL:'. > > After the dix, the nr of expeted passes increased. > > dix->fix > expeted -> expected > > > > > In the gdb.log output, one can see: > >   ... > >   Fatal signal: Segmentation fault > >   ----- Backtrace ----- > >   0x55698905c5b9 gdb_internal_backtrace_1 > >           ../../binutils-gdb/gdb/bt-utils.c:122 > >   0x55698905c5b9 _Z22gdb_internal_backtracev > >   ... > > > >   ERROR: Couldn't send python print(objfile.filename) to GDB. > >   ERROR: : spawn id exp9 not open > >       while executing > >   "expect { > >   -i exp9 -timeout 10 > >           -re ".*A problem internal to GDB has been detected" { > >               fail "$message (GDB internal error)" > >               gdb_internal_error..." > >       ("uplevel" body line 1) > >       invoked from within > >   .... > > > > Wondering if it might be possible to improve gdb_test to have > >   gdb_test "python print(objfile.filename)" "None" \ > >       "objfile.filename after objfile is unloaded" > > reporting a failed result instead of just producing the internal error. > > I think an UNRESOLVED would be appropriate here. Normally, it should do > that automatically. The perror here: > > https://gitlab.com/gnutools/binutils-gdb/-/blob/84f9fbe90e5429adb9dee68f04f44c92fa9e2345/gdb/testsuite/lib/gdb.exp#L1183 > > ... should make it so the next pass/fail becomes an UNRESOLVED. > However, we don't even reach a pass / fail, as the expect call throws > the error you pasted above, about the spawn id not being open. This > mechanism works if GDB hasn't crashed yet when entering > gdb_test_multiple, and it's the command gdb_test_multiple sends that > crashes GDB. But here, what crashed GDB is the previous gdb_unload > call, which uses bare expect, leaving no trace of the crash (in terms of > test result). > > I propose the following changes to handle this situation better: > >   - make gdb_unload use gdb_test_multiple, to make it record a test >     result and handle the different failure modes >   - instead of calling perror, manually call unresolved as soone as >     send_gdb returns an error, and return -1 immediately, to handle >     more gracefully the case where GDB is already crashed on entry Note that in the meantime, when comparing gdb.log results, I will now also look for the string ERROR: while up to now I was just searching for FAIL: assuming any new error due to a patch I am testing would be shown as a FAIL:. > > But this is orthogonal with your patch, I will send a separate series. > > Your patch LGTM: > > Approved-By: Simon Marchi > > Simon Thanks for the review, pushed. Philippe