diff options
author | Andrew Cagney <cagney@redhat.com> | 2002-03-16 02:57:42 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2002-03-16 02:57:42 +0000 |
commit | 376c9600197cb583397c4bf8a2cd49e23693bf6d (patch) | |
tree | 3eb9b49bda81c2d691d0c794d4e9018b85530098 | |
parent | ff8a5556c4aee9e9053fb35b144acdf6192de804 (diff) | |
download | gdb-376c9600197cb583397c4bf8a2cd49e23693bf6d.zip gdb-376c9600197cb583397c4bf8a2cd49e23693bf6d.tar.gz gdb-376c9600197cb583397c4bf8a2cd49e23693bf6d.tar.bz2 |
* eval.c (evaluate_subexp_standard): Pass ``selected_frame'' to
value_of_register.
* findvar.c (value_of_register): Add ``frame'' parameter. Pass to
get_saved_register.
* value.h (value_of_register): Update.
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/eval.c | 3 | ||||
-rw-r--r-- | gdb/findvar.c | 14 | ||||
-rw-r--r-- | gdb/value.h | 3 |
4 files changed, 18 insertions, 10 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 46d6127..56e0434 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2002-03-15 Andrew Cagney <ac131313@redhat.com> + + * eval.c (evaluate_subexp_standard): Pass ``selected_frame'' to + value_of_register. + * findvar.c (value_of_register): Add ``frame'' parameter. Pass to + get_saved_register. + * value.h (value_of_register): Update. + 2002-03-14 Richard Henderson <rth@redhat.com> * configure.in: Detect declaration for canonicalize_file_name. @@ -447,8 +447,7 @@ evaluate_subexp_standard (struct type *expect_type, case OP_REGISTER: { int regno = longest_to_int (exp->elts[pc + 1].longconst); - struct value *val = value_of_register (regno); - + struct value *val = value_of_register (regno, selected_frame); (*pos) += 2; if (val == NULL) error ("Value of register %s not available.", REGISTER_NAME (regno)); diff --git a/gdb/findvar.c b/gdb/findvar.c index 3a160a3..5d54117 100644 --- a/gdb/findvar.c +++ b/gdb/findvar.c @@ -283,15 +283,15 @@ store_typed_address (void *buf, struct type *type, CORE_ADDR addr) -/* Return a `value' with the contents of register REGNUM - in its virtual format, with the type specified by - REGISTER_VIRTUAL_TYPE. +/* Return a `value' with the contents of (virtual or cooked) register + REGNUM as found in the specified FRAME. The register's type is + determined by REGISTER_VIRTUAL_TYPE. - NOTE: returns NULL if register value is not available. - Caller will check return value or die! */ + NOTE: returns NULL if register value is not available. Caller will + check return value or die! */ struct value * -value_of_register (int regnum) +value_of_register (int regnum, struct frame_info *frame) { CORE_ADDR addr; int optim; @@ -300,7 +300,7 @@ value_of_register (int regnum) enum lval_type lval; get_saved_register (raw_buffer, &optim, &addr, - selected_frame, regnum, &lval); + frame, regnum, &lval); if (register_cached (regnum) < 0) return NULL; /* register value not available */ diff --git a/gdb/value.h b/gdb/value.h index d6fa9ff..29a178f 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -317,7 +317,8 @@ extern struct value *value_from_register (struct type *type, int regnum, extern struct value *value_of_variable (struct symbol *var, struct block *b); -extern struct value *value_of_register (int regnum); +extern struct value *value_of_register (int regnum, + struct frame_info *frame); extern int symbol_read_needs_frame (struct symbol *); |