]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Avoid scopes.exp failure on certain architectures
authorTom Tromey <tromey@adacore.com>
Tue, 12 Aug 2025 13:13:26 +0000 (07:13 -0600)
committerTom Tromey <tromey@adacore.com>
Tue, 12 Aug 2025 13:18:42 +0000 (07:18 -0600)
A buildbot pointed out that my changes to gdb.dap/scopes.exp caused a
test failure.  The new code iterates over all the registers, fetching
their children (when possible).  The failure comes because this code
failed to consider that a register might have "indexed" children,
which I believe can occur when a register is vector-like.

This patch fixes the problem by arranging to fetch indexed children
when indicated.

gdb/testsuite/gdb.dap/scopes.exp

index bce7746c12ffa94adbc9c46cd54c994f9ee39702..52efa683c4ceb29d9b7037c4eccc6be63ab869c9 100644 (file)
@@ -152,10 +152,17 @@ lassign [dap_check_request_and_response "fetch all registers" \
 foreach var [dict get $val body variables] {
     set regvar [dict get $var variablesReference]
     if {$regvar > 0} {
+       # If variablesReference is non-zero, then there must be either
+       # named or indexed children.
+       if {[dict exists $var namedVariables]} {
+           set n [dict get $var namedVariables]
+       } else {
+           set n [dict get $var indexedVariables]
+       }
+
        dap_check_request_and_response "fetch register children for $regvar" \
            "variables" \
-           [format {o variablesReference [i %d] count [i %d]} \
-                $regvar [dict get $var namedVariables]]
+           [format {o variablesReference [i %d] count [i %d]} $regvar $n]
     }
 }