From b7be2d03fb2f873e0db74c84846df97787fc0dc6 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Tue, 15 Oct 2019 02:21:37 +0200 Subject: [PATCH] [gdb/testsuite] Fix gdb.ada/mi_task_arg.exp On openSUSE Leap 15.1, we have: ... FAIL: gdb.ada/mi_task_arg.exp: -stack-list-arguments 1 (unexpected output) ... The problem is that the stack-list-arguments command prints a frame argument 'self_id' for function system.tasking.stages.task_wrapper: ... frame={level="2",args=[{name="self_id",value="0x12345678"}] ... where none (args=[]) is expected. The frame argument is in fact correct. The FAIL does not show for say, fedora 30, because there the executable uses the system.tasking.stages.task_wrapper from /lib64/libgnarl-9.so. Adding "additional_flags=-bargs additional_flags=-shared additional_flags=-largs" to the flags argument of gdb_compile_ada gives us the same PASS, but installing libada7-debuginfo gets us the same FAIL again. Fix the FAIL by allowing the 'self_id' argument. Tested on x86_64-linux. Change-Id: I5aee5856fa6aeb0cc78aa4fe69deecba5b00b77a --- gdb/testsuite/gdb.ada/mi_task_arg.exp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gdb/testsuite/gdb.ada/mi_task_arg.exp b/gdb/testsuite/gdb.ada/mi_task_arg.exp index 6c4156f5d33..29fcb4488c6 100644 --- a/gdb/testsuite/gdb.ada/mi_task_arg.exp +++ b/gdb/testsuite/gdb.ada/mi_task_arg.exp @@ -44,7 +44,13 @@ if ![mi_runto "task_switch.break_me"] then { # Verify that "-stack-list-arguments" does not cause the debugger to # crash when printing the arguments of frame 1 (due to the internally- # generated argument "_task"). +# 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\"\}\\\]\}" +# Frame for system.tasking.stages.task_wrapper +set frame2 "frame=\{level=\"2\",args=\\\[(\{name=\"self_id\",value=\"$hex\"\})?\\\]\}" mi_gdb_test "-stack-list-arguments 1" \ - "\\^done,stack-args=\\\[frame=\{level=\"0\",args=\\\[\\\]\},frame=\{level=\"1\",args=\\\[\{name=\"<_task>\",value=\"$hex\"\}\\\]\},frame=\{level=\"2\",args=\\\[\\\]\}.*" \ + "\\^done,stack-args=\\\[$frame0,$frame1,$frame2,.*" \ "-stack-list-arguments 1" -- 2.30.2