2001-11-30 Pierre Muller <muller@ics.u-strasbg.fr>
authorPierre Muller <muller@sourceware.org>
Mon, 3 Dec 2001 08:41:10 +0000 (08:41 +0000)
committerPierre Muller <muller@sourceware.org>
Mon, 3 Dec 2001 08:41:10 +0000 (08:41 +0000)
* findvar.c (locate_var_value): Specify in which register a register
variable is stored.

gdb/ChangeLog
gdb/findvar.c

index 3cdd070..732be25 100644 (file)
@@ -1,5 +1,10 @@
 2001-11-30  Pierre Muller  <muller@ics.u-strasbg.fr>
 
+       * findvar.c (locate_var_value): Specify in which register a register
+       variable is stored.
+
+2001-11-30  Pierre Muller  <muller@ics.u-strasbg.fr>
+
        * win32-nat.c (mappings): Correct position of XMM registers,
        based on FXSAVE instruction structure.
 
index b9b9be4..5f5766c 100644 (file)
@@ -29,6 +29,7 @@
 #include "inferior.h"
 #include "target.h"
 #include "gdb_string.h"
+#include "gdb_assert.h"
 #include "floatformat.h"
 #include "symfile.h"           /* for overlay functions */
 #include "regcache.h"
@@ -869,9 +870,21 @@ locate_var_value (register struct symbol *var, struct frame_info *frame)
   switch (VALUE_LVAL (lazy_value))
     {
     case lval_register:
+       gdb_assert (REGISTER_NAME (VALUE_REGNO (lazy_value)) != NULL
+                   && *REGISTER_NAME (VALUE_REGNO (lazy_value)) != '\0');
+      error("Address requested for identifier "
+           "\"%s\" which is in register $%s",
+            SYMBOL_SOURCE_NAME (var), 
+           REGISTER_NAME (VALUE_REGNO (lazy_value)));
+      break;
+
     case lval_reg_frame_relative:
-      error ("Address requested for identifier \"%s\" which is in a register.",
-            SYMBOL_SOURCE_NAME (var));
+       gdb_assert (REGISTER_NAME (VALUE_FRAME_REGNUM (lazy_value)) != NULL
+                   && *REGISTER_NAME (VALUE_FRAME_REGNUM (lazy_value)) != '\0');
+      error("Address requested for identifier "
+           "\"%s\" which is in frame register $%s",
+            SYMBOL_SOURCE_NAME (var), 
+           REGISTER_NAME (VALUE_FRAME_REGNUM (lazy_value)));
       break;
 
     default: