This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Invalid registers


On Mon, 11 Jul 2005 16:49:26 +0100, Daniel Jacobowitz <drow@false.org> wrote:
On Mon, Jul 11, 2005 at 04:39:51PM +0100, Andrew STUBBS wrote:
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.

How's it supposed to know that the value is not available? If you want to do this based on the standard call ABI, please take a look at the current callers of dwarf2_frame_set_init_reg.

Thank you. This has helped me find the right stuff to look at.


I do not think I actually want to use dwarf2_frame_set_init_reg. The compiler (GCC 3.4.3) produces CFI information which I think ought to be enough.

The function execute_cfa_program in dwarf2-frame.c appears to load all the relevant data (setting breakpoints in strategic places show this). If I use 'up' and 'info registers' I see the values change, which shows that the CFI data has been loaded (doesn't it?). It just appears that the 'how' field from the CFA is being ignored when the values are printed. Setting 'how' via dwarf2_frame_set_init_reg is not ignored however. It must be being reset, or perhaps not copied in the first place.

Any clues?

Thanks

Andrew Stubbs


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]