New ARI warning Sat Mar 19 01:54:11 UTC 2011
Pedro Alves
pedro@codesourcery.com
Wed Mar 23 18:21:00 GMT 2011
On Wednesday 23 March 2011 17:16:01, Joel Brobecker wrote:
> > This was a large diff, but in fact, there is only one new warning:
> >
> > > gdb/i386-tdep.c:1693: obsolete: frame_register_read: Replace frame_register_read() with get_frame_register(), or possibly introduce a new method safe_get_frame_register()
> > gdb/i386-tdep.c:1693: && frame_register_read (this_frame, cache->saved_sp_reg, buf))
>
> I just had a look at this ARI warning. The comment on
> frame_register_read says:
>
> /* FIXME: cagney/2003-02-02: Should be deprecated or replaced with a
> function called get_frame_register_p(). This slightly weird (and
> older) variant of get_frame_register() returns zero (indicating the
> register value is unavailable/invalid) if either: the register
> isn't cached; or the register has been optimized out; or the
> register contents are unavailable (because they haven't been
> collected in a traceframe). Problem is, neither check is exactly
> correct. A register can't be optimized out (it may not have been
> saved as part of a function call); The fact that a register isn't
> in the register cache doesn't mean that the register isn't
> available (it could have been fetched from memory). */
>
> I have had this feeling that we have way too many ways to read/write
> frame registers, but I'm wondering if this comment might not be
> too zealous in this case. This function seems useful, because it
> returns a status as opposed to get_frame_register, which has the exact
> same profile except that it throws instead of returning. So I'm thinking
> we should remove the "deprecation" fixme, and just keep the FIXME for
> fixing whatever incorrectness might be left, and then remove this from
> the ARI.
>
> Thoughts?
Agreed.
--
Pedro Alves
More information about the Gdb-patches
mailing list