From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id gHSvC3iSnWGzPwAAWB0awg (envelope-from ) for ; Tue, 23 Nov 2021 20:16:40 -0500 Received: by simark.ca (Postfix, from userid 112) id 2D1881F0CE; Tue, 23 Nov 2021 20:16:40 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-3.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.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 AA0F81EDEE for ; Tue, 23 Nov 2021 20:16:39 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DB4D63858409 for ; Wed, 24 Nov 2021 01:16:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DB4D63858409 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1637716598; bh=vvMPuIi+aebpkXNE8h67nONVP0rx829Pt+7li8S7IZs=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=H2HL1VZXdwzOV7xlF+anUMAp+0eFJZ36F+2RO5AnYB6sq1A58xGVh5jsN5DxFlSfc dsNrKtWqM+Q49cLaof6ZNSvL1u7yqe+I4dHT9HeWxH1LSG19FCVbkKU3XjcazDx34M NcZW7k9YtYMG+5hoxNQdvEVE8d+/UL+dZUBd8dzE= Received: from mx0a-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id 55B133858D28 for ; Wed, 24 Nov 2021 01:16:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 55B133858D28 Received: from pps.filterd (m0098413.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 1AO0lXRr008375; Wed, 24 Nov 2021 01:16:02 GMT Received: from ppma04dal.us.ibm.com (7a.29.35a9.ip4.static.sl-reverse.com [169.53.41.122]) by mx0b-001b2d01.pphosted.com with ESMTP id 3chb5k0e25-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 24 Nov 2021 01:16:02 +0000 Received: from pps.filterd (ppma04dal.us.ibm.com [127.0.0.1]) by ppma04dal.us.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 1AO196ig010486; Wed, 24 Nov 2021 01:16:01 GMT Received: from b01cxnp22035.gho.pok.ibm.com (b01cxnp22035.gho.pok.ibm.com [9.57.198.25]) by ppma04dal.us.ibm.com with ESMTP id 3cernbqcm3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 24 Nov 2021 01:16:01 +0000 Received: from b01ledav004.gho.pok.ibm.com (b01ledav004.gho.pok.ibm.com [9.57.199.109]) by b01cxnp22035.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 1AO1G0x255443788 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 24 Nov 2021 01:16:00 GMT Received: from b01ledav004.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 93147112062; Wed, 24 Nov 2021 01:16:00 +0000 (GMT) Received: from b01ledav004.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 97BF1112061; Wed, 24 Nov 2021 01:15:59 +0000 (GMT) Received: from li-e362e14c-2378-11b2-a85c-87d605f3c641.ibm.com (unknown [9.211.121.24]) by b01ledav004.gho.pok.ibm.com (Postfix) with ESMTP; Wed, 24 Nov 2021 01:15:59 +0000 (GMT) Message-ID: <8269783078cecf5fe7fb7bea8d546256aafc7071.camel@us.ibm.com> To: Simon Marchi , John Baldwin , gdb-patches@sourceware.org Date: Tue, 23 Nov 2021 17:15:58 -0800 In-Reply-To: References: <3b8e450b9fb4f4bec97a6bfbe6e6a4816be780ee.camel@us.ibm.com> <4d51616392553dd308672f65f18909ebf0513fc0.camel@us.ibm.com> <95fbffc3-8d30-6e75-4f52-f6e534a13b20@FreeBSD.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5 (3.28.5-16.el8) Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: 2pkT7e7RvjgyyqZCet5rXeZLncp9wtbU X-Proofpoint-GUID: 2pkT7e7RvjgyyqZCet5rXeZLncp9wtbU Subject: RE: [PATCH] gdb fix for catch-syscall.exp X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475 definitions=2021-11-23_08,2021-11-23_01,2020-04-07_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 bulkscore=0 mlxlogscore=999 priorityscore=1501 phishscore=0 impostorscore=0 mlxscore=0 suspectscore=0 clxscore=1011 adultscore=0 spamscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2110150000 definitions=main-2111240004 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: Carl Love via Gdb-patches Reply-To: Carl Love Cc: Rogerio Alves Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" Simon: On Tue, 2021-11-23 at 15:34 -0500, Simon Marchi wrote: > If you all agree that it's a bug, I would suggest reverting this > patch > and making a patch that kfails the test when on powerpc. And > ideally, > someone should dig to understand why we don't see the return on > powerpc > (and fix it), but I'm not here to tell what other people should work > on :). OK, I think for powerpc the test should be a xfail. Looking at the README, kfail is for gdb known issues, xfail is for issues in the environment including the OS. I see xfail takes two arguments, the first one is the gdb bug number. So, I will need to file a bug before I finish this patch. I am hoping someone has a suggestion on how to improve my patch to add the xfail. The issue is since Powerpc doesn't print the "Catchpoint 1 (returned from syscall execve)" but rather stops at main, the test should not issue the continue command after the xfail. In the case of the xfail, I need to pass 0 backup so the if statement in proc test_catch_syscall_execve can decide if the continue command should be issued or not. The change is a bit messy having to pass the return value up. Wondering if anyone has a better idea how to add the xfail? Note, so far I have only tested this on Powerpc. Patch is not ready for committing. Carl ------------------------------------------------- gdb Revert change to gdb.base/catch-syscall.exp The previous commit: commit ab198279120fe7937c0970a8bb881922726678f9 Author: Carl Love Date: Wed Nov 17 22:29:33 2021 +0000 gdb fix for catch-syscall.exp Fixed the test failure on PowerPC but broke the test on amd64. The issue is both messages: Catchpoint 1 (call to syscall execve), .... Catchpoint 1 (returned from syscall execve), .... are seen on amd64 whereas on PowerPC only the "call to syscall execve" is seen. Based on the discussion on the mailing list, it is felt that this is really an issue with the PowerPC kernel support not reporting both events. Thus, the change is being reverted and will be marked as a kfail for Powerpc. --- gdb/testsuite/gdb.base/catch-syscall.exp | 38 +++++++++++++++++++----- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp index 016d0a698a6..04fa2bf9687 100644 --- a/gdb/testsuite/gdb.base/catch-syscall.exp +++ b/gdb/testsuite/gdb.base/catch-syscall.exp @@ -127,7 +127,24 @@ proc check_return_from_syscall { syscall { pattern "" } } { } set thistest "syscall $syscall has returned" - gdb_test "continue" "Catchpoint $decimal \\(returned from syscall ${pattern}\\).*" $thistest + if { $pattern eq "execve" } { + gdb_test_multiple "continue" $thistest { + -re -wrap "Catchpoint $decimal \\(returned from syscall ${pattern}\\).*" { + pass $thistest + return 1 + } + -re -wrap ".*Breakpoint $decimal, main .*" { + # On Powerpc kernel does not report the returned from syscall + # as expected by the test. + xfail $thistest + return 0 + } + } + + } else { + gdb_test "continue" "Catchpoint $decimal \\(returned from syscall ${pattern}\\).*" $thistest + return 1 + } } # Internal procedure that performs two 'continue' commands and checks if @@ -142,7 +159,11 @@ proc check_continue { syscall { pattern "" } } { # Testing if the inferior has called the syscall. check_call_to_syscall $syscall $pattern # And now, that the syscall has returned. - check_return_from_syscall $syscall $pattern + if [check_return_from_syscall $syscall $pattern] { + return 1 + } else { + return 0 + } } # Inserts a syscall catchpoint with an argument. @@ -348,13 +369,14 @@ proc test_catch_syscall_execve {} { # Check for entry/return across the execve, making sure that the # syscall_state isn't lost when turning into a new process. insert_catch_syscall_with_arg "execve" + if [check_continue "execve"] { + # The check_continue test generates an XFAIL on Powerpc. In + # that case, gdb is already at main so don't do the continue. - # Check that the execve is called. - check_call_to_syscall "execve" - - # Continue to main so extended-remote can read files as needed. - # (Otherwise that "Reading" output confuses gdb_continue_to_end.) - gdb_continue "main" + # Continue to main so extended-remote can read files as needed. + # (Otherwise that "Reading" output confuses gdb_continue_to_end.) + gdb_continue "main" + } # Now can we finish? check_for_program_end -- 2.30.2