Hello, The attached patch introduces a ``struct frame_id'' for recording frames. Previously (as JimI discovered) GDB was using a confused combination of a frame's relative level and its base/fp address. A ``frame_id'' is a frame-{addr,base,fp} + frame-{pc,contaddr} pair. Two methods are provided: get_frame_id() and frame_find_by_id() I've also made this new function more robust then the current find_frame_addr...() code - it stops searching (I hope :-) as soon as it has gone past the relevant frame. At present the frame_find_by_id() doesn't do a PC based test that is needed to tie-break frameless (?) frames (er, frames belonging to frameless function instances). Can anyone come up with a testcase that demonstrates the need for the PC comparison test? varobj, MI and insight should all be updated to use this more reliable frame handle. I'm going to leave this on the table for a week or so. Thoughts? JimI, does it fix your bug? enjoy, Andrew