Index: stack.c =================================================================== --- stack.c (revision 549) +++ stack.c (working copy) @@ -516,6 +516,8 @@ print_frame (struct frame_info *frame, i enum language funlang = language_unknown; struct ui_stream *stb; struct cleanup *old_chain, *list_chain; + struct frame_id this_frame_id; + char *frame_id_str = NULL; stb = ui_out_stream_new (uiout); old_chain = make_cleanup_ui_out_stream_delete (stb); @@ -674,6 +676,16 @@ print_frame (struct frame_info *frame, i } } + /* Print a string that represents the frame_id. This could be used by the UI + for comparison with the previous frame_id. */ + this_frame_id= get_frame_id (frame); + frame_id_str = xstrprintf ("%s,%s,%s", + (this_frame_id.stack_addr_p ? paddr (this_frame_id.stack_addr) : "!stack"), + (this_frame_id.code_addr_p ? paddr (this_frame_id.code_addr) : "!code"), + (this_frame_id.special_addr_p ? paddr (this_frame_id.special_addr) : "!special")); + ui_out_field_string (uiout, "frame_id", frame_id_str); + xfree (frame_id_str); + /* do_cleanups will call ui_out_tuple_end() for us. */ do_cleanups (list_chain); ui_out_text (uiout, "\n");