Invalid registers

Andrew STUBBS
2005-07-11T15:42:56Z

Hi,

I have been having a little trouble updating from GDB 5.3 to GDB 6.3.

It used to be the case that GDB would report '*value not available*' (for
SH - I haven't checked other architectures) if the value of a register is
not known in the current stack frame. However, it no longer does this.
Since I assume it has not acquired some way to find out what that value
was, I also assume this is somehow broken.

(Note that SH already was broken in this respect for fp registers etc.)

The code to print the data, in sh-tdep.c, has not changed greatly. It
still calls frame_register_read() to discover the status of each register.
However, deep in regcache.c, the code to handle this sort of thing has
changed somewhat (indeed a few 'deprecated_...'s have got into the mix).
The result is that no register is ever marked invalid.

I cannot find out how (or where) it is supposed to know whether a register
is invalid or not. Nor can I find any relevant discussion on the subject
by googling (or I don't recognise it when I see it).

Has this problem been fixed since 6.3 or become somehow obsolete? If not,
any clues how to fix it?

Thanks

Andrew Stubbs