aboutsummaryrefslogtreecommitdiff
path: root/gdb/value.h
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2009-06-03 18:16:44 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2009-06-03 18:16:44 +0000
commit4fa62494657f9b422edd7049c7207bd6c6849c3f (patch)
tree95b9aff30ec88b11de20b097d9803e93b4303069 /gdb/value.h
parent6ceaaae57734058aa008b218f3b44581c5655a56 (diff)
downloadgdb-4fa62494657f9b422edd7049c7207bd6c6849c3f.zip
gdb-4fa62494657f9b422edd7049c7207bd6c6849c3f.tar.gz
gdb-4fa62494657f9b422edd7049c7207bd6c6849c3f.tar.bz2
* value.h (struct internalvar): Remove.
(get_internalvar_integer): Add prototype. (set_internalvar_integer): Add prototype. (clear_internalvar): Add prototype. * value.c (struct internalvar): Move here. Add type member. Remove endian member. Add union_internalvar member instead of value member. (init_if_undefined_command): Use intvar->type. (create_internalvar): Do not initialize value/endian, but type. (create_internalvar_type_lazy): Call create_internalvar. (value_of_internalvar): Handle host-side internalvar contents. (set_internalvar_component): Likewise. (set_internalvar): Likewise. (get_internalvar_integer): New function. (clear_internalvar): Likewise. (set_internalvar_integer): Likewise. (preserve_values): Handle host-side internalvar contents. * breakpoint.c (set_breakpoint_count, set_tracepoint_count): Call set_internalvar_integer instead of set_internalvar. * findcmd.c (find_command): Likewise. * infrun.c (handle_inferior_event): Likewise. * source.c (forward_search_command, reverse_search_command): Likewise. * tracepoint.c (set_traceframe_num, set_tracepoint_num, set_traceframe_context): Likewise. * printcmd.c (x_command): Call clear_internalvar instead of set_internalvar. * tracepoint.c (set_traceframe_context): Likewise. * breakpoint.c (get_number_trailer): Call get_internalvar_integer instead of value_of_internalvar. * linespec.c (decode_dollar): Likewise. * expprint.c (dump_subexp_body_standard): Use internalvar_name instead of accessing internalvar private elements. * valops.c (value_assign): Copy from original source instead of accessing internalvar private elements.
Diffstat (limited to 'gdb/value.h')
-rw-r--r--gdb/value.h25
1 files changed, 8 insertions, 17 deletions
diff --git a/gdb/value.h b/gdb/value.h
index 456c9c8..fcff0ad 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -309,23 +309,6 @@ extern struct value *coerce_ref (struct value *value);
extern struct value *coerce_array (struct value *value);
-/* Internal variables (variables for convenience of use of debugger)
- are recorded as a chain of these structures. */
-
-typedef struct value * (*internalvar_make_value) (struct internalvar *);
-
-struct internalvar
-{
- struct internalvar *next;
- char *name;
- struct value *value;
- internalvar_make_value make_value;
- int endian;
- /* True if this internalvar is the canonical name for a convenience
- function. */
- int canonical;
-};
-
#include "symtab.h"
@@ -538,8 +521,14 @@ extern struct value *access_value_history (int num);
extern struct value *value_of_internalvar (struct internalvar *var);
+extern int get_internalvar_integer (struct internalvar *var, LONGEST *l);
+
extern void set_internalvar (struct internalvar *var, struct value *val);
+extern void set_internalvar_integer (struct internalvar *var, LONGEST l);
+
+extern void clear_internalvar (struct internalvar *var);
+
extern void set_internalvar_component (struct internalvar *var,
int offset,
int bitpos, int bitsize,
@@ -549,6 +538,8 @@ extern struct internalvar *lookup_only_internalvar (const char *name);
extern struct internalvar *create_internalvar (const char *name);
+typedef struct value * (*internalvar_make_value) (struct internalvar *);
+
extern struct internalvar *
create_internalvar_type_lazy (char *name, internalvar_make_value fun);