From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailsec111.isp.belgacom.be (mailsec111.isp.belgacom.be [195.238.20.107]) by sourceware.org (Postfix) with ESMTPS id 4B4B83858C62 for ; Wed, 23 Nov 2022 11:00:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4B4B83858C62 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=1669201214; x=1700737214; h=message-id:subject:from:to:cc:date:in-reply-to: references:mime-version:content-transfer-encoding; bh=6KU2czY604SFjK+1njfR0j9I44F5hDLrwOneM2hrYrw=; b=UuAorwM5vGGpPAR99cC2t6PeZlrVD0rJcnpsLV0cp7xrNTWxu/AOReFL WyyMePv61iLWHOe1fpMlGC4VslqI+ldRH8ah380Vk2/XhiATNjlEhRNdz S6zoaxN6zWcm+Plx56ZhTzS1Fe4D63cdgFHco6aHu8RO6IoI1DlO8lFSw E=; X-ExtLoop: 1 X-IPAS-Result: =?us-ascii?q?A2BZAgCI/H1j/1uGgG0NTR0BATwBBQUBAgEJARUJgSEng?= =?us-ascii?q?UMCPoEsgViETpEaA5dah1UPAQEBAQEBAQEBCRQCJQkEAQGFBQKFBSY4EwECB?= =?us-ascii?q?AEBAQEDAgMBAQEBAQEDAQEGAQEBAQEBBgQBgRuFLzmCQikBg3QBAQEBAyMPA?= =?us-ascii?q?UYQCQIVAwICJgICVwYBEoJ+gzWTdZsdeoEygQGDUAGcBYFhBoEUKgIBAYh+g?= =?us-ascii?q?2CEMDeBVUSBFYE8gW4+hA4MhAGCZwSMNoVOhhMcNwMZKx1AAws7MgpJG1gOC?= =?us-ascii?q?R8cDhcNBQYSAyBsBQo3DygvZyscGweBDCooFQMEBAMCBhMDIgINKTEUBCkTD?= =?us-ascii?q?SsnbwkCAyJlBQMDBCgsAwkhHwcWESQ8B1Y6AQQDAg8gOAYDCQMCJBNDdS4RF?= =?us-ascii?q?QUDCxUlCAVLBAg5BQZTEgIKEQMSDwYkRQ5IPjkWBidCATEODhQDXoFpBDWBc?= =?us-ascii?q?QoxMJo/giIBUyIGCQoLERCBETQZBwdGjSSFOa9uNAeDa4FIBgyJdI19hwoyq?= =?us-ascii?q?Rgthx5pjiBgII0jmjU1gUSBfm2DOhM/KI5XbwECh12FS3QCAQE3AgcBCgEBA?= =?us-ascii?q?wmIGoFpXwEB?= IronPort-PHdr: A9a23:hUIojBd4WQYtPNR5XUN9NWTHlGM+E9nLVj580XLHo4xHfqnrxZn+J kuXvawr0AWVG9uCoKsVw6qO6ua8AzdGuc7A+Fk5M7V0HycfjssXmwFySOWkMmbcaMDQUiohA c5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aFRrwLxd6KfroEYDOkcu3y/qy+5rOaAlUmTaxe7x/I Au5oAnLt8QanIRuJrs1xxDUpndEZ/layXlnKF6NkRvw/Nu88IJm/y9Np/8v6slMXLngca8lV 7JYFjMmM2405M3vqxbOSBaE62UfXGsLjBdGGhDJ4x7mUJj/tCv6rfd91zKBPcLqV7A0WC+t4 LltRRT1lSoILT858GXQisxtkKJWpQ+qqhJjz4LIZoyeKeFzdb3Bc9wEWWVBX95RVy1fDYO6c 4sPFPcKMeJBo4Xgu1cCsR6yCA+xD+3t1zBInGf7064n3eohDw/LwgIuENAAsHvIotr6O6gcX PupzKTL1zjPc+9a1C3/5YXObxsvoeuMXbV1ccfJ00cvFwLFjlGRqYz9JzOayPkGvGiB4Op6U uKvknMnqwBvrTi13ccnl47EhpoVylDF8SV5wZ41JcWmR0Jhb9+rCoFQtyaDN4trQ8MtXXtou D0hx70dup66fC4Kx4o7xxLFcPOIbZGF7xT+X+mePTl2nmhqeK6jhxms60igzPXxW8mo3VtIs CZIkMTAu24Q2hHc5caJSv9w8lqu1DqRygze7uVJLEQqmafaL5MvzbE9mocPvUnHAiP4lkT7g LKKekgi5+Om5ePnYrD8qZ+dMY95khr+MqMzmsylHes3LAYPUHKB+euizrHj+lf5QLpMg/Yrk afZqIjXKdkHqqO9GQNZz5gv5hWlAzu73tkVkmMLIVZYdB+BkoPnIUvBIOriAve6m1mslTBry O3YMbD5GZXNK2TDkK/mfbZg905Q0Aozws5b55JTErwOJO//V0vvuNDCExM0Mg+5z/z6BNlny 48TXWSADreYMKPUr1CI+voiL/SQaIIRojrxNuYp6v30gXMkl1IQcrOl0J8KZHygG/RpOUSZY X7igtcbFmcKuxIzTPTqiF2DVT5TZm6yX7oi6T0hBoOpF53DRoe0gLyc3Se0AIdWZntdB1CXE nfpd4OEVOkQaC6IOcBujCQIVb66RIA5zxGhqBf6y6Z7LurT4iAVu4rv1MJp6O3LiREy6Tt0A tyG02GMSmF0mWUISyUz3K9lu0xy1leD0aljjvNGG9xT6fJJXRs7NZ7b1Ox2Ecz9WgXEftuRU lapXs2mAS0tTtI229IObFtyFM67ghDbxSWqH6Mal7yVC5wv6a/cxH/xJ9tny3nayqYggUMpQ tFROmG8ga5/7QfTC5bTk0qFj6aqabgc3CnV+WeYzGqOuUZYUAhqXaXAR38ffFfZrdT45k7ZV 7+uDrAnMwtEyc6eLqtGcMHmgk8VDMvkbe/fZmW300K5Hx2Ix/vYd4vvfGNb2SzHA0gFuw0d8 3eNNA8lQCympjSaRDNiHxf3al/n8eRlgGi8U1U/wh6DdUAn0KC6qTAPgvnJc/MS2rMcoCppl DxuG0+g3t/MEJLUvwpgeKREed57/15d0nvEtgFnJbS7LLFki0JYeQkh7BCm7Al+FogVyZtil 3gt1gcnbPvAiDt8 IronPort-Data: A9a23:mpjijqvUs9lcR3xFb7XgbtzP8efnVFZfMUV32f8akzHdYApBsoF/q tZmKTuFbvbYNDamLtpyaIq3pksCsZbdyoQ3HlFprys2Fy8SgMeUXt7xwmUcn8+xwmwvaGo9s q3yv/GZdJhcokf0/0vraP64xZVF/fngbqLmD+LZMTxGSwZhSSMw4TpugOdRbrRA2LBVOCvQ/ 4KsyyHjEAX9gWQtazhPs/jrRC5H5ZwehhtJ5jTSWtgW5Dcyp1FNZLoDKKe4KWfPQ4U8NoZWk M6akdlVVkuAl/scIovNfoTTKyXmcZaOVeS6sUe6boD56vR0SoPe5Y5gXBYUQR8/ZzxkBLmdw v0V3XC7YV9B0qEhBI3xXjEAexySM5Gq95fqOlSRipO9n3GYXGvjk/EzKWNtY5Yxr7Mf7WFmr ZT0KRg+N0HZwbvokPTiDLA9s6zPLuGyZNJZ4yswi2iCUbB3GPgvQI2TjTNc9C8wh8RPBe7TI dUQcz12cRXNeQZnIVQGDp8i2u2l7pX6W2QF+AzM+/puugA/yiRM7qOuH53zdeCAZtp1h3i7i ETYzyfAV0Ry2Nu3jGDtHmiXrvTOmCT9HocbDra499ZnjlOSzW0UE1sdUl7Tifa1gAumUs5UK 0EP0jEpsLI5+VOiVNS7WAe3yFafvxsbXZxVGvcx6ACl0q3Q8gOFAi4PR1Z8hMcO5ZZwHGd2k wbTz5awXW0pubGOTTeR57HSrCiqfyIYKWALbigBCwEIizX+nLwOYtv0Zo4LOMaIYhfdQ2uYL +yixMT1u1nfYQPnGUl2EZArTg9AfqT0czM= IronPort-HdrOrdr: A9a23:aqfeI63/RCcM+Hy4mofy7AqjBLkkLtp133Aq2lEZdPWaSKOlfq eV7ZAmPH7P+VUssR4b9+xoVJPsfZqYz/9ICOoqTNKftWvd01dARbsKhbcKgQeBJ8SUzIRgPM lbH5SWROeAb2RHsQ== 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; 23 Nov 2022 11:59:56 +0100 Message-ID: <6460c6b9c161ee2d17edaa8ce0ed78af3cc3dbaf.camel@skynet.be> Subject: Re: [PATCH 1/2] gdb/testsuite: make gdb_test_multiple return immediately =?ISO-8859-1?Q?if=A0send=5Fgdb?= fails From: Philippe Waroquiers To: Simon Marchi , gdb-patches@sourceware.org Cc: Simon Marchi Date: Wed, 23 Nov 2022 11:59:55 +0100 In-Reply-To: <20221122155546.599061-1-simon.marchi@efficios.com> References: <20221122155546.599061-1-simon.marchi@efficios.com> 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=-10.9 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,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: Thanks for this, it will for sure help me in the future to not miss anymore some regressions I introduce. One small question: Is a GDB crash the only reason for which we could have a message such as: Couldn't send python print(objfile.filename) to GDB. ? Possibly better then to indicate that GDB crashed (on an internal error) ? Or if there are some other reasons, it might be good to give more details about the reason ? Note that if this is not straightforward to do, not a big deal as just making the problem visible with UNRESOLVED should draw the attention and the detailed log will show the crash I guess. Thanks Philippe On Tue, 2022-11-22 at 10:55 -0500, Simon Marchi via Gdb-patches wrote: > From: Simon Marchi > > In the failure seen by Philippe here: > >   https://inbox.sourceware.org/gdb-patches/20221120173024.3647464-1-philippe.waroquiers@skynet.be/ > > ... the testsuite only outputs PASSes, and an ERROR, resulting from an > uncaught exception. This is a bit sneaky, because ERRORs are not > reported in the test summary. In certain circumstances, it can be easy > to miss. > > Normally, gdb_test_multiple outputs an UNRESOLVED when GDB crashes. But > this is only if it manages to send the command, and it's that command > that crashes GDB. Here, the ERROR is due to the fact that GDB had > already crashed by the time we entered gdb_test_multiple and tried to > send a command. GDB was crashed by the previous "file" command, sent by > gdb_unload. Because gdb_unload uses bare expect, it didn't record a > test failure when crashing GDB (this will be addressed separately). > > In this patch, I propose to make gdb_test_multiple call unresolved > directly and return -1 send_gdb fails. This way, if GDB is already > crashed by the time we enter gdb_test_multiple, it will leave a trace in > the test results in the form of an UNRESOLVED. It will also spare us of > the not-so-useful-in-my-opinion TCL backtrace. > > Before, it looks like: > >     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 >     "uplevel $body" NONE : spawn id exp9 not open > > And after: > >     Couldn't send python print(objfile.filename) to GDB. >     UNRESOLVED: gdb.python/py-objfile.exp: objfile.filename after objfile is unloaded > > Change-Id: I72af8dc0d687826fc3f76911c27a9e5f91b677ba > --- >  gdb/testsuite/lib/gdb.exp | 8 ++++++-- >  1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp > index 7d05fbe557bb..fcd54c88f251 100644 > --- a/gdb/testsuite/lib/gdb.exp > +++ b/gdb/testsuite/lib/gdb.exp > @@ -1161,7 +1161,9 @@ proc gdb_test_multiple { command message args } { >   if { $foo < [expr $len - 1] } { >   set str [string range "$string" 0 $foo] >   if { [send_gdb "$str"] != "" } { > - perror "Couldn't send $command to GDB." > + verbose -log "Couldn't send $command to GDB." > + unresolved $message > + return -1 >   } >   # since we're checking if each line of the multi-line >   # command are 'accepted' by GDB here, > @@ -1180,7 +1182,9 @@ proc gdb_test_multiple { command message args } { >   } >   if { "$string" != "" } { >   if { [send_gdb "$string"] != "" } { > - perror "Couldn't send $command to GDB." > + verbose -log "Couldn't send $command to GDB." > + unresolved $message > + return -1 >   } >   } >      }