From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id qSmCAsE5z1+qYgAAWB0awg (envelope-from ) for ; Tue, 08 Dec 2020 03:30:57 -0500 Received: by simark.ca (Postfix, from userid 112) id F18281F096; Tue, 8 Dec 2020 03:30:56 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=MAILING_LIST_MULTI,RDNS_NONE, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from sourceware.org (unknown [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 9F89A1E99A for ; Tue, 8 Dec 2020 03:30:56 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2817A385800B; Tue, 8 Dec 2020 08:30:56 +0000 (GMT) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by sourceware.org (Postfix) with ESMTPS id B82C1385800B for ; Tue, 8 Dec 2020 08:30:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org B82C1385800B Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tdevries@suse.de X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id C7335AB63 for ; Tue, 8 Dec 2020 08:30:52 +0000 (UTC) Date: Tue, 8 Dec 2020 09:30:50 +0100 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [committed][gdb/testsuite] Fix gdb.ada/mi_task_arg.exp for -m32 Message-ID: <20201208083049.GA20157@delia> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) 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: , Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" Hi, When running test-case gdb.ada/mi_task_arg.exp with target board unix/-m32, I run into: ... (gdb) ^M Expecting: ^(-stack-list-arguments 1[^M ]+)?(\^done,stack-args=\[ \ frame={level="0",args=\[\]}, \ frame={level="1",args=\[{name="<_task>",value="0x[0-9A-Fa-f]+"}\]}, \ frame={level="2",args=\[({name="self_id",value="0x[0-9A-Fa-f]+"})?\]},.*[^M ]+[(]gdb[)] ^M [ ]*) -stack-list-arguments 1^M ^done,stack-args=[ \ frame={level="0",args=[]}, \ frame={level="1",args=[{name="<_task>",value="0x808abf0"}]}, \ frame={level="2",args=[{name="self_id",value=""}]}, \ frame={level="3",args=[]},frame={level="4",args=[]}]^M (gdb) ^M FAIL: gdb.ada/mi_task_arg.exp: -stack-list-arguments 1 (unexpected output) ... The problem is that we're expecting a $hex for the value of self_id, but instead get . Looking at the debug info for self_id: ... <1><12a1f>: Abbrev Number: 84 (DW_TAG_subprogram) <12a20> DW_AT_name : system__tasking__stages__task_wrapper ... <2><12a35>: Abbrev Number: 61 (DW_TAG_formal_parameter) <12a36> DW_AT_name : self_id <12a40> DW_AT_location : 0x459e (location list) ... it refers to location information here: ... 0000459e 08053060 080531ac (DW_OP_fbreg: 0) 000045aa 0805327c 080532a5 (DW_OP_fbreg: 0) 000045b6 08053320 08053324 (DW_OP_fbreg: 0) ... while the pc used to retrieve the location information is 0x080531c5: ... $ gdb -batch outputs/gdb.ada/mi_task_arg/task_switch \ -ex "break 57" -ex run -ex bt ... #0 task_switch.break_me () at task_switch.adb:57 #1 0x0804aaae in task_switch.caller (<_task>=0x808abf0) \ at task_switch.adb:51 #2 0x080531c5 in system.tasking.stages.task_wrapper \ (self_id=) at s-tassta.adb:1295 ... which indeed falls outside of the ranges listed in the location info. Fix this by accepting as valid value of self_id. Tested on x86_64-linux. Committed to trunk. Thanks, - Tom [gdb/testsuite] Fix gdb.ada/mi_task_arg.exp for -m32 gdb/testsuite/ChangeLog: 2020-12-08 Tom de Vries * gdb.ada/mi_task_arg.exp: Accept as valid value of self_id. --- gdb/testsuite/gdb.ada/mi_task_arg.exp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gdb/testsuite/gdb.ada/mi_task_arg.exp b/gdb/testsuite/gdb.ada/mi_task_arg.exp index 2a4038d77b..ace808c605 100644 --- a/gdb/testsuite/gdb.ada/mi_task_arg.exp +++ b/gdb/testsuite/gdb.ada/mi_task_arg.exp @@ -49,9 +49,11 @@ if ![mi_runto "task_switch.break_me"] then { # Frame for task_switch.break_me set frame0 "frame=\{level=\"0\",args=\\\[\\\]\}" # Frame for task_switch.caller -set frame1 "frame=\{level=\"1\",args=\\\[\{name=\"<_task>\",value=\"$hex\"\}\\\]\}" +set frame1_args "\{name=\"<_task>\",value=\"$hex\"\}" +set frame1 "frame=\{level=\"1\",args=\\\[$frame1_args\\\]\}" # Frame for system.tasking.stages.task_wrapper -set frame2 "frame=\{level=\"2\",args=\\\[(\{name=\"self_id\",value=\"$hex\"\})?\\\]\}" +set frame2_args "(\{name=\"self_id\",value=\"($hex|)\"\})?" +set frame2 "frame=\{level=\"2\",args=\\\[$frame2_args\\\]\}" mi_gdb_test "-stack-list-arguments 1" \ "\\^done,stack-args=\\\[$frame0,$frame1,$frame2,.*" \ "-stack-list-arguments 1"