Index: gdb/infrun.c =================================================================== RCS file: /cvs/src/src/gdb/infrun.c,v retrieving revision 1.266 diff -u -p -r1.266 infrun.c --- gdb/infrun.c 29 Jan 2008 22:47:19 -0000 1.266 +++ gdb/infrun.c 10 Mar 2008 15:24:07 -0000 @@ -3151,11 +3151,6 @@ Further execution is probably impossible } } - /* Delete the breakpoint we stopped at, if it wants to be deleted. - Delete any breakpoint that is to be deleted at the next stop. */ - - breakpoint_auto_delete (stop_bpstat); - /* If an auto-display called a function and that got a signal, delete that auto-display to avoid an infinite recursion. */ @@ -3294,6 +3289,9 @@ Further execution is probably impossible done: annotate_stopped (); observer_notify_normal_stop (stop_bpstat); + /* Delete the breakpoint we stopped at, if it wants to be deleted. + Delete any breakpoint that is to be deleted at the next stop. */ + breakpoint_auto_delete (stop_bpstat); } static int Index: gdb/breakpoint.c =================================================================== RCS file: /cvs/src/src/gdb/breakpoint.c,v retrieving revision 1.304 diff -u -p -r1.304 breakpoint.c --- gdb/breakpoint.c 27 Feb 2008 20:27:49 -0000 1.304 +++ gdb/breakpoint.c 10 Mar 2008 15:24:10 -0000 @@ -2131,6 +2131,7 @@ print_it_typical (bpstat bs) struct breakpoint *b; const struct bp_location *bl; struct ui_stream *stb; + int bp_temp = 0; stb = ui_out_stream_new (uiout); old_chain = make_cleanup_ui_out_stream_delete (stb); /* bs->breakpoint_at can be NULL if it was a momentary breakpoint @@ -2144,15 +2145,22 @@ print_it_typical (bpstat bs) { case bp_breakpoint: case bp_hardware_breakpoint: + bp_temp = bs->breakpoint_at->owner->disposition == disp_del; if (bl->address != bl->requested_address) breakpoint_adjustment_warning (bl->requested_address, bl->address, b->number, 1); annotate_breakpoint (b->number); - ui_out_text (uiout, "\nBreakpoint "); + if (bp_temp) + ui_out_text (uiout, "\nTemporary breakpoint "); + else + ui_out_text (uiout, "\nBreakpoint "); if (ui_out_is_mi_like_p (uiout)) - ui_out_field_string (uiout, "reason", - async_reason_lookup (EXEC_ASYNC_BREAKPOINT_HIT)); + { + ui_out_field_string (uiout, "reason", + async_reason_lookup (EXEC_ASYNC_BREAKPOINT_HIT)); + ui_out_field_string (uiout, "disp", bp_temp ? "del" : "keep"); + } ui_out_field_int (uiout, "bkptno", b->number); ui_out_text (uiout, ", "); return PRINT_SRC_AND_LOC; @@ -4792,7 +4800,11 @@ mention (struct breakpoint *b) say_where = 0; break; } - printf_filtered (_("Breakpoint %d"), b->number); + if (b->disposition == disp_del) + printf_filtered (_("Temporary breakpoint")); + else + printf_filtered (_("Breakpoint")); + printf_filtered (_(" %d"), b->number); say_where = 1; break; case bp_hardware_breakpoint: