summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYao Qi <yao@codesourcery.com>2013-11-10 10:31:09 +0800
committerYao Qi <yao@codesourcery.com>2013-11-22 08:34:42 +0800
commit0a1e61210c1740acbd5739afdf0f445a7e613d5c (patch)
tree8573655c016c0eb864d7b83f8c4e1a3cef6b414f
parent0061ea2440bff35c29fa18c752528680dc985242 (diff)
downloadbinutils-gdb-0a1e61210c1740acbd5739afdf0f445a7e613d5c.tar.gz
Check has_more in mi_create_dynamic_varobj
Hi, I find "has_more" is not checked when a dynamic varobj is created in proc mi_create_dynamic_varobj. This patch adds the check to "has_more". gdb/testsuite: 2013-11-22 Yao Qi <yao@codesourcery.com> * lib/mi-support.exp (mi_create_dynamic_varobj): Update comment and add one more argument "has_more". * gdb.python/py-mi.exp: Callers update.
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.python/py-mi.exp16
-rw-r--r--gdb/testsuite/lib/mi-support.exp5
3 files changed, 18 insertions, 9 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 9b78096d33e..58d2bc79cb2 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,11 @@
2013-11-22 Yao Qi <yao@codesourcery.com>
+ * lib/mi-support.exp (mi_create_dynamic_varobj): Update
+ comment and add one more argument "has_more".
+ * gdb.python/py-mi.exp: Callers update.
+
+2013-11-22 Yao Qi <yao@codesourcery.com>
+
* gdb.python/py-mi.exp: Use mi_create_floating_varobj instead
of mi_create_dynamic_varobj.
diff --git a/gdb/testsuite/gdb.python/py-mi.exp b/gdb/testsuite/gdb.python/py-mi.exp
index 69bc0936223..b132a5602ff 100644
--- a/gdb/testsuite/gdb.python/py-mi.exp
+++ b/gdb/testsuite/gdb.python/py-mi.exp
@@ -87,7 +87,9 @@ mi_gdb_test "-var-update string" \
"\\^done,changelist=\\\[{name=\"string\",in_scope=\"true\",type_changed=\"false\",dynamic=\"1\",has_more=\"0\"}\\\]" \
"update string varobj after assignment"
-mi_create_dynamic_varobj container c \
+# The "elements" field of "c" is still empty, so the attribute
+# "has_more" is expected to be zero.
+mi_create_dynamic_varobj container c 0 \
"create container varobj"
mi_list_varobj_children container {
@@ -202,7 +204,7 @@ mi_next "next over update 5"
# Regression test: examine an object that has no children, then update
# it to ensure that we don't print the children.
-mi_create_dynamic_varobj container2 c2 \
+mi_create_dynamic_varobj container2 c2 0 \
"create second container varobj"
mi_gdb_test "-var-update container2" \
@@ -223,7 +225,7 @@ mi_continue_to_line \
[gdb_get_line_number {MI outer breakpoint here} ${srcfile}] \
"step to outer breakpoint"
-mi_create_dynamic_varobj outer outer \
+mi_create_dynamic_varobj outer outer 1 \
"create outer varobj"
mi_list_varobj_children outer {
@@ -253,7 +255,7 @@ mi_continue_to_line \
[gdb_get_line_number {break to inspect struct and union} ${srcfile}] \
"step to outer breakpoint"
-mi_create_dynamic_varobj nscont nstype \
+mi_create_dynamic_varobj nscont nstype 1 \
"create nstype varobj"
mi_list_varobj_children nscont {
@@ -275,7 +277,7 @@ mi_gdb_test "-var-set-visualizer nscont gdb.default_visualizer" \
mi_gdb_test "python exception_flag = True" ""
-mi_create_dynamic_varobj nstype2 nstype2 \
+mi_create_dynamic_varobj nstype2 nstype2 1 \
"create nstype2 varobj"
mi_list_varobj_children nstype2 {
@@ -290,7 +292,7 @@ mi_gdb_test "-var-evaluate-expression me" \
"evaluate me varobj"
# Regression test for python/14836.
-mi_create_dynamic_varobj children_as_list children_as_list \
+mi_create_dynamic_varobj children_as_list children_as_list 1 \
"printer whose children are returned as a list"
# Regression test for bug 14741.
@@ -298,7 +300,7 @@ mi_continue_to_line \
[gdb_get_line_number {breakpoint bug 14741} ${srcfile}] \
"step to breakpoint for bug 14741"
-mi_create_dynamic_varobj c c \
+mi_create_dynamic_varobj c c 1 \
"create varobj for c"
mi_gdb_test "-var-set-visualizer c ArrayPrinter" \
diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp
index 7f34c9b06a9..0c3cdbe1ab6 100644
--- a/gdb/testsuite/lib/mi-support.exp
+++ b/gdb/testsuite/lib/mi-support.exp
@@ -1277,9 +1277,10 @@ proc mi_create_varobj_checked { name expression type testname } {
# Same as mi_create_floating_varobj, but assumes the test is creating
# a dynamic varobj that has children, so the value must be "{...}".
-proc mi_create_dynamic_varobj {name expression testname} {
+# The "has_more" attribute is checked.
+proc mi_create_dynamic_varobj {name expression has_more testname} {
mi_gdb_test "-var-create $name @ $expression" \
- "\\^done,name=\"$name\",numchild=\"\(-1\|\[0-9\]+\)\",value=\"{\\.\\.\\.}\",type=.*" \
+ "\\^done,name=\"$name\",numchild=\"0\",value=\"{\\.\\.\\.}\",type=.*,has_more=\"${has_more}\"" \
$testname
}