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: Discrepency between gdbarch_frame_locals_address and get_frame_locals_address?


Andrew,

Whilst poking around on related things, I observed that, at least on
Linux,

Um, which GNU/Linux, which architecture, and how recent a GDB? Lets assume i386 and gdb_6_0-branch.


the values of gdbarch_frame_locals_address and
get_frame_locals_address disagree.  The latter appears to be correct,
since it is used in read_var_value in what I assume is the intended
way (add SYMBOL_VALUE to get_frame_locals_address (frame) to get
variable address).

Yes. get_frame_locals_address returns what debug info thinks of as the frame base. Local variables being specified as offsets from that address. Just don't confuse it with gdb's [deprecated] get_frame_base :-(


Would you like a patch, or is there a subtle
point here that I am missing?

There is likely a subtle point^D^D^Dproblem vis: The backward compatible path is
get_frame_locals_address
-> [deprecated] gdbarch_frame_locals_address
-> get_frame_base
-> get_frame_id.stack_addr
and, so pre-frame code has identical values for both. New code, however, has a different frame ID .stack_addr and frame-locals-address.


You've probably found code using the wrong one.

Andrew



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