[gdb/testsuite] Use setVariable in gdb.dap/scopes.exp
Checks
Commit Message
The test-case gdb.dap/scopes.exp contains the following outdated comment:
...
# setVariable isn't implemented yet, so use the register name.
...
Now that setVariable is implemented, use it to set variable scalar, and remove
the bit that sets the first register. That part is known to fail on s390x,
because the first register isn't writeable [1].
Tested on x86_64-linux.
Suggested-By: Tom Tromey <tom@tromey.com>
[1] https://sourceware.org/pipermail/gdb-patches/2024-December/213823.html
---
gdb/testsuite/gdb.dap/scopes.exp | 27 +++++++++------------------
1 file changed, 9 insertions(+), 18 deletions(-)
base-commit: c79fb66c7837cbc3b5f3915d8c23bb5747235c34
Comments
>>>>> "Tom" == Tom de Vries <tdevries@suse.de> writes:
Tom> The test-case gdb.dap/scopes.exp contains the following outdated comment:
Tom> ...
Tom> # setVariable isn't implemented yet, so use the register name.
Tom> ...
Tom> Now that setVariable is implemented, use it to set variable scalar, and remove
Tom> the bit that sets the first register. That part is known to fail on s390x,
Tom> because the first register isn't writeable [1].
Thanks for doing this. This looks good to me.
Approved-By: Tom Tromey <tom@tromey.com>
Tom
@@ -134,23 +134,14 @@ set val [dap_check_request_and_response "fetch first register" \
"variables" \
[format {o variablesReference [i %d] count [i 1]} $num]]
-# Try setting the value to something else.
-set val [dict get [lindex $val 0] body variables]
-set name [dict get [lindex $val 0] name]
-set val [dict get [lindex $val 0] value]
-# Just make sure it is different from the original value.
-set val [expr {$val ^ 7}]
-
-# setVariable isn't implemented yet, so use the register name. Note
-# that we sneak the "$" into the name, written in a slightly funny way
-# to work around apparent TON limitations.
-set response [dap_check_request_and_response "set first register" \
- setExpression \
- [format {o expression [s \$%s] value [s %d] frameId [i %d]} \
- $name $val $frame_id]]
-set response [lindex $response 0]
-
-gdb_assert {[dict get $response body value] == $val} \
- "setting register yields updated value"
+set num [dict get $scope variablesReference]
+set refs [lindex [dap_check_request_and_response "set variable scalar" \
+ "setVariable" \
+ [format {o variablesReference [i %d] name [s scalar] \
+ value [s 32]} \
+ $num]] \
+ 0]
+gdb_assert { [dict get $refs body value] == 32 } \
+ "setting variable yields updated value"
dap_shutdown