aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2025-07-30 08:30:49 -0600
committerTom Tromey <tromey@adacore.com>2025-08-11 07:39:10 -0600
commit9ef3249a00f50ee00e3973e5901cd2936abc79b3 (patch)
tree60c3bdc16947c5634ac312a69c3b051e0b8985b0 /gdb/testsuite
parentddd2795c52228cbbdf11aa95e11b68647b10df88 (diff)
downloadbinutils-9ef3249a00f50ee00e3973e5901cd2936abc79b3.zip
binutils-9ef3249a00f50ee00e3973e5901cd2936abc79b3.tar.gz
binutils-9ef3249a00f50ee00e3973e5901cd2936abc79b3.tar.bz2
Emit DAPException when too many variable children are reqeusted
PR dap/33228 points out a failure that occurs when the DAP client requests more children of a variable than actually exist. Currently, gdb throws a somewhat confusing exception. This patch changes this code to throw a DAPException instead, resulting in a more ordinary and readable failure. The spec seems to be silent on what to do in this case. I chose an exception on the theory that it's easier to be strict now and lift the restriction later (if needed) than vice versa. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=33228
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/gdb.dap/scopes.exp7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.dap/scopes.exp b/gdb/testsuite/gdb.dap/scopes.exp
index b2066e5..bce7746 100644
--- a/gdb/testsuite/gdb.dap/scopes.exp
+++ b/gdb/testsuite/gdb.dap/scopes.exp
@@ -133,6 +133,13 @@ set refs [lindex [dap_check_request_and_response "fetch contents of dei" \
set deivals [dict get $refs body variables]
gdb_assert {[llength $deivals] == 2} "dei has two members"
+# Request more children than exist. See PR dap/33228.
+set seq [dap_send_request variables \
+ [format {o variablesReference [i %d] count [i 100]} $dei_ref]]
+lassign [dap_read_response variables $seq] response ignore
+gdb_assert {[dict get $response success] == "false"} \
+ "variables with invalid count"
+
set num [dict get $reg_scope variablesReference]
lassign [dap_check_request_and_response "fetch all registers" \
"variables" \