summaryrefslogtreecommitdiff
path: root/gdb/testsuite/lib
diff options
context:
space:
mode:
authorVladimir Prus <vladimir@codesourcery.com>2006-12-08 12:44:11 +0000
committerVladimir Prus <vladimir@codesourcery.com>2006-12-08 12:44:11 +0000
commitb26ed50ddfdc3c3ba992ca2cfaf75b515a43b3d9 (patch)
tree145b8afc101a8d88870ec05b1933c5f393ba4936 /gdb/testsuite/lib
parentdb9a518b07b656e17230459a945301822ea13404 (diff)
downloadbinutils-gdb-b26ed50ddfdc3c3ba992ca2cfaf75b515a43b3d9.tar.gz
2006-12-08 Vladimir Prus <vladimir@codesourcery.com>
* varobj.c (varobj_create): Don't call release_value. (varobj_set_value): Likewise. (install_new_value): Call coerce_ref and release_value on the value. Add asserts.
Diffstat (limited to 'gdb/testsuite/lib')
-rw-r--r--gdb/testsuite/lib/mi-support.exp38
1 files changed, 37 insertions, 1 deletions
diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp
index 5d5af947152..af3feefa741 100644
--- a/gdb/testsuite/lib/mi-support.exp
+++ b/gdb/testsuite/lib/mi-support.exp
@@ -869,7 +869,7 @@ proc mi_runto {func} {
set test "mi runto $func"
mi_gdb_test "200-break-insert $func" \
- "200\\^done,bkpt=\{number=\"\[0-9\]+\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"$func\",file=\".*\",line=\"\[0-9\]*\",times=\"0\"\}" \
+ "200\\^done,bkpt=\{number=\"\[0-9\]+\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"$func\(\\\(.*\\\)\)?\",file=\".*\",line=\"\[0-9\]*\",times=\"0\"\}" \
"breakpoint at $func"
if {![regexp {number="[0-9]+"} $expect_out(buffer) str]
@@ -998,3 +998,39 @@ proc mi0_continue_to { bkptno func args file line test } {
mi0_execute_to "exec-continue" "breakpoint-hit\",bkptno=\"$bkptno" \
"$func" "$args" "$file" "$line" "" "$test"
}
+
+# Creates varobj named NAME for EXPRESSION.
+# Name cannot be "-".
+proc mi_create_varobj { name expression testname } {
+ mi_gdb_test "-var-create $name * $expression" \
+ "\\^done,name=\"$name\",numchild=\"\[0-9\]+\",type=.*" \
+ $testname
+}
+
+# Updates varobj named NAME and checks that all varobjs in EXPECTED
+# are reported as updated, and no other varobj is updated.
+# Assumes that no varobj is out of scope and that no varobj changes
+# types.
+proc mi_varobj_update { name expected testname } {
+ set er "\\^done,changelist=\\\["
+ set first 1
+ foreach item $expected {
+ set v "{name=\"$item\",in_scope=\"true\",type_changed=\"false\"}"
+ if {$first} {
+ set er "$er$v"
+ } else {
+ set er "$er,$v"
+ }
+ }
+ set er "$er\\\]"
+
+ verbose -log "Expecting: $er" 2
+ mi_gdb_test "-var-update $name" $er $testname
+}
+
+proc mi_check_varobj_value { name value testname } {
+
+ mi_gdb_test "-var-evaluate-expression $name" \
+ "\\^done,value=\"$value\"" \
+ $testname
+}