The patch below defines a new gdbarch routine called FRAME_UNCHANGED.
This is needed for gdb/ia64 because the ia64 architecture has two
separate stack pointers (one for memory stack and one for register stack).
Because of the two stacks, it's not possible to look just at the frame
pointer and PC to determine whether a frame changed.
If the patch looks OK, I'd appreciate if someone could apply it.
Note: the patch below doesn't include the ia64 version of
FRAME_UNCHANGED. It is part of a larger update to add unwind library
support to gdb/ia64 and I'll submit that separately. So, for now, the
patch is effectively a no-op for all platforms.
Also, it will be necessary to re-generate gdbarch.[ch] after applying
the patch.
Just to follow this up. The frame_id code has been committed. I think
this has the potential of affecting the way you did your patch. For
instance, it could compare frame_id's for either sameness or more
inner_than.