[committed][gdb/testsuite] Fix gdb.ada/mi_task_arg.exp

Tom de Vries tdevries@suse.de
Tue Oct 15 00:22:00 GMT 2019


Hi,

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"
 

Committed to trunk.

Thanks,
- Tom

[gdb/testsuite] Fix gdb.ada/mi_task_arg.exp



More information about the Gdb-patches mailing list