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.
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]
}
}