From b6313243984b74ee6772dd8273b0e6073ad1815b Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 28 May 2009 01:09:20 +0000 Subject: gdb 2009-05-27 Vladimir Prus Tom Tromey Thiago Jung Bauermann * mi/mi-main.c (mi_cmd_list_features): List "python" feature. * varobj.h (varobj_set_visualizer): Declare. (varobj_get_display_hint): Likewise. (varobj_update_result_t) : New fields. * mi/mi-cmds.c (mi_cmds): Add var-set-visualizer. * mi/mi-cmds.h (mi_cmd_var_set_visualizer, mi_cmd_var_set_child_range): Declare. * mi/mi-cmd-var.c (mi_cmd_var_set_visualizer): New function. (mi_cmd_var_list_children): Emit display hint. (varobj_update_one): Emit display hint. Handle dynamic children. * python/python.c (GdbMethods): Add "default_visualizer". * python/python-internal.h (apply_varobj_pretty_printer, gdbpy_get_varobj_pretty_printer, gdbpy_get_display_hint): Declare. (gdbpy_default_visualizer): Likewise. * varobj.c: Include python.h, python-internal.h. (PyObject): New typedef. (struct varobj) : New fields. (varobj_create): Call install_default_visualizer. (instantiate_pretty_printer): New function. (varobj_set_display_format): Update. (varobj_get_display_hint): New function. (update_dynamic_varobj_children): New function. (varobj_get_num_children): Handle dynamic children. (varobj_list_children): Likewise. (install_new_value): Likewise. (varobj_add_child): New function. (install_visualizer): Likewise. (install_default_visualizer): Likewise. (varobj_set_visualizer): Likewise. (varobj_update): Handle dynamic children. (create_child): Use create_child_with_value. (create_child_with_value): New function. (value_get_print_value): Call pretty printer. Add value_formatter argument. (c_value_of_variable): Update. (varobj_invalidate): Always free all_rootvarobj. * python/python-prettyprint.c (apply_varobj_pretty_printer): New function. (gdbpy_get_varobj_pretty_printer): Likewise. (gdbpy_default_visualizer): Likewise. gdb/doc 2009-05-27 Tom Tromey * gdb.texinfo (GDB/MI Miscellaneous Commands): Document "python" feature. (GDB/MI Variable Objects): Document -var-set-visualizer. gdb/testsuite 2009-05-27 Tom Tromey Thiago Jung Bauermann * lib/mi-support.exp (mi_varobj_update_dynamic): New proc. (mi_child_regexp): Likewise. (mi_list_varobj_children_range): Likewise. (mi_get_features): Likewise. (mi_list_varobj_children): Rewrite. * gdb.python/python-mi.exp: New file. --- gdb/varobj.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'gdb/varobj.h') diff --git a/gdb/varobj.h b/gdb/varobj.h index f2cdcf8..c1ad099 100644 --- a/gdb/varobj.h +++ b/gdb/varobj.h @@ -71,8 +71,13 @@ typedef struct varobj_update_result_t { struct varobj *varobj; int type_changed; + int children_changed; int changed; enum varobj_scope_status status; + /* This variable is used internally by varobj_update to indicate if the + new value of varobj is already computed and installed, or has to + be yet installed. Don't use this outside varobj.c */ + int value_installed; } varobj_update_result; DEF_VEC_O (varobj_update_result); @@ -107,6 +112,8 @@ extern void varobj_set_frozen (struct varobj *var, int frozen); extern int varobj_get_frozen (struct varobj *var); +extern char *varobj_get_display_hint (struct varobj *var); + extern int varobj_get_num_children (struct varobj *var); /* Return the list of children of VAR. The returned vector @@ -141,4 +148,6 @@ extern int varobj_editable_p (struct varobj *var); extern int varobj_floating_p (struct varobj *var); +extern void varobj_set_visualizer (struct varobj *var, const char *visualizer); + #endif /* VAROBJ_H */ -- cgit v1.1