* ui-out.h (ui_out_field_fmt_int): New prototype.
* ui-out.c (ui_out_field_fmt_int): New function allowing specification
of field width and alignment.
* stack.c (print_frame_info_base): When printing frame level, use
ui_out_field_fmt_int with a width of 2 and left alignment. Fix for
PR gdb/192
* ui-out.c (ui_out_field_core_addr): Use the function
longest_local_hex_string_custom'to format addresses > 32 bits
wide.
* ui-out.c (ui_out_field_core_addr): Update comment.
(verify_field): New function.
(verify_field_proper_position): Delete function.
(verify_field_alignment): Delete function.
(ui_out_field_int): Update to use verify_field.
(ui_out_field_skip): Ditto.
(ui_out_field_string): Ditto.
(ui_out_field_fmt): Ditto.
(ui_out_table_begin): Initialize table.entry_level.
(ui_out_table_end): Clear table.entry_level.
(ui_out_begin): Call verify_field before pushing the new tuple or
list onto the stack. Use table.entry_level.
(make_cleanup_ui_out_list_end): New function.
* ui-out.h: Provide prototype for make_cleanup_ui_out_list_end.
* stack.c (print_frame) [UI_OUT]: Call
make_cleanup_ui_out_list_end to make sure we mark the end of the
list if we do a non-local exit. At the end of the function,
instead of calling ui_out_list_end directly, let do_cleanups
handle it.