From 0a1e61210c1740acbd5739afdf0f445a7e613d5c Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Sun, 10 Nov 2013 10:31:09 +0800 Subject: [PATCH] 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 * lib/mi-support.exp (mi_create_dynamic_varobj): Update comment and add one more argument "has_more". * gdb.python/py-mi.exp: Callers update. --- gdb/testsuite/ChangeLog | 6 ++++++ gdb/testsuite/gdb.python/py-mi.exp | 16 +++++++++------- gdb/testsuite/lib/mi-support.exp | 5 +++-- 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,3 +1,9 @@ +2013-11-22 Yao Qi + + * 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 * gdb.python/py-mi.exp: Use mi_create_floating_varobj instead 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 } -- 2.30.2