This is the mail archive of the gdb-patches@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: RFC: selected frame in read_var_value


On Thu, Aug 07, 2003 at 01:45:28PM -0400, Andrew Cagney wrote:

>Thoughts on this? I observed one case where the selected frame hadn't been
>initialized yet: when checking watchpoint values. Oops! The condition
>matches the case in which get_current_frame () can be reasonably expected >to
>succeed. There are a couple other places that need this same check, mostly
>functions which will work on globals as well as locals.


I think the caller, and not this code, should be the one deciding if/when a get_selected_frame should be called. Otherwize the dependance on global state remains.


The callers don't know any more than we do.  Take a look at some of
them - several callers don't take frame arguments, and work both when
the program is running and when it isn't.  If you want to cut down on
the global state dependence, I guess you'd have to push this up through
every caller, so that it could eventually be pushed even higher?

Yep, welcome to my world :-)


Me, I was just fixing the regression caused by lazily selecting a
frame.  I wasn't planning on redesigning interfaces all through the
block and variable layers; and fixing this really does go quite far up.
For instance it works back to block_innermost_frame, which can return
NULL.

What about something like this as a step sideways:


if (frame == NULL)
  frame = deprecated_safe_get_selected_frame ();

where deprecated_safe_get_selected_frame() would contain those sanity checks?


Andrew



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