diff options
Diffstat (limited to 'gdb/varobj.h')
-rw-r--r-- | gdb/varobj.h | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/gdb/varobj.h b/gdb/varobj.h index 4fc7d1e..9ecef0f 100644 --- a/gdb/varobj.h +++ b/gdb/varobj.h @@ -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, @@ -120,8 +132,8 @@ 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); |