2009-01-08 Kai Tietz <kai.tietz@onevision.com>
[deliverable/binutils-gdb.git] / gdb / varobj.h
index 4033b4b955e34e3a4b3c4fd9cb1e1cab504f3184..f2cdcf8eff243712ef3a30f7f7683426585088a7 100644 (file)
@@ -1,5 +1,5 @@
 /* GDB variable objects API.
-   Copyright (C) 1999, 2000, 2001, 2005, 2007, 2008
+   Copyright (C) 1999, 2000, 2001, 2005, 2007, 2008, 2009
    Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -39,12 +39,14 @@ enum varobj_type
     USE_SELECTED_FRAME          /* Always reevaluate in selected frame */
   };
 
-/* Error return values for varobj_update function.  */
-enum varobj_update_error
+/* Enumerator describing if a variable object is in scope.  */
+enum varobj_scope_status
   {
-    NOT_IN_SCOPE = -1,          /* varobj not in scope, can not be updated.  */
-    TYPE_CHANGED = -2,          /* varobj type has changed.  */
-    INVALID = -3,               /* varobj is not valid anymore.  */
+    VAROBJ_IN_SCOPE = 0,        /* Varobj is scope, value available.  */
+    VAROBJ_NOT_IN_SCOPE = 1,    /* Varobj is not in scope, value not available, 
+                                  but varobj can become in scope later.  */
+    VAROBJ_INVALID = 2,         /* Varobj no longer has any value, and never
+                                  will.  */
   };
 
 /* String representations of gdb's format codes (defined in varobj.c) */
@@ -65,6 +67,16 @@ struct varobj;
 typedef struct varobj *varobj_p;
 DEF_VEC_P (varobj_p);
 
+typedef struct varobj_update_result_t
+{
+  struct varobj *varobj;
+  int type_changed;
+  int changed;
+  enum varobj_scope_status status;
+} varobj_update_result;
+
+DEF_VEC_O (varobj_update_result);
+
 /* API functions */
 
 extern struct varobj *varobj_create (char *objname,
@@ -111,17 +123,22 @@ extern enum varobj_languages varobj_get_language (struct varobj *var);
 
 extern int varobj_get_attributes (struct varobj *var);
 
+extern char *varobj_get_formatted_value (struct varobj *var,
+                                        enum varobj_display_formats format);
+
 extern char *varobj_get_value (struct varobj *var);
 
 extern int varobj_set_value (struct varobj *var, char *expression);
 
 extern int varobj_list (struct varobj ***rootlist);
 
-extern int varobj_update (struct varobj **varp, struct varobj ***changelist,
-                         int explicit);
+extern VEC(varobj_update_result) *varobj_update (struct varobj **varp, 
+                                                int explicit);
 
 extern void varobj_invalidate (void);
 
 extern int varobj_editable_p (struct varobj *var);
 
+extern int varobj_floating_p (struct varobj *var);
+
 #endif /* VAROBJ_H */
This page took 0.025395 seconds and 4 git commands to generate.