2000-11-16 Michael Snyder <msnyder@cleaver.cygnus.com>
authorMichael Snyder <msnyder@vmware.com>
Fri, 17 Nov 2000 01:30:53 +0000 (01:30 +0000)
committerMichael Snyder <msnyder@vmware.com>
Fri, 17 Nov 2000 01:30:53 +0000 (01:30 +0000)
        * regcache.c (read_register_bytes): Failing to set register_valid
        is not necessarily an error, if the register is a pseudo-register.
        Some pseudo-registers are never marked as valid, so that they will
        be read anew every time.  Determining if a pseudo-register is valid
        (or should be marked invalid) may be difficult, whereas just
        recomputing it may be cheap.

gdb/ChangeLog
gdb/regcache.c

index af10432003c302789b4b4e8ce403469ac2dc363a..8507debe8c808888c8a16819308111b1da5db579 100644 (file)
@@ -1,3 +1,12 @@
+2000-11-16  Michael Snyder  <msnyder@cleaver.cygnus.com>
+
+       * regcache.c (read_register_bytes): Failing to set register_valid
+       is not necessarily an error, if the register is a pseudo-register.
+       Some pseudo-registers are never marked as valid, so that they will
+       be read anew every time.  Determining if a pseudo-register is valid
+       (or should be marked invalid) may be difficult, whereas just 
+       recomputing it may be cheap.
+
 Thu Nov 16 09:47:57 2000  David Taylor  <taylor@redhat.com>
 
        * tracepoint.c (trace_find_tracepoint_command): Replace call to
index 2326b3485b9c52d58651edc1f351d721bab74921..104bff7b179d2e7938572bbe18058f27a48a2f8b 100644 (file)
@@ -391,7 +391,14 @@ read_register_bytes (int inregbyte, char *myaddr, int inlen)
        FETCH_PSEUDO_REGISTER (regno);
 
       if (!register_valid[regno])
-       error ("read_register_bytes:  Couldn't update register %d.", regno);
+       {
+         /* Sometimes pseudoregs are never marked valid, so that they 
+            will be fetched every time (it can be complicated to know
+            if a pseudoreg is valid, while "fetching" them can be cheap). 
+            */
+         if (regno < NUM_REGS)
+           error ("read_register_bytes:  Couldn't update register %d.", regno);
+       }
     }
 
   if (myaddr != NULL)