OSDN Git Service

* breakpoint.c (print_exception_catchpoint): In CLI add 'Temporary' for
authorAleksandar Ristovski <aristovski@qnx.com>
Wed, 28 May 2008 14:04:21 +0000 (14:04 +0000)
committerAleksandar Ristovski <aristovski@qnx.com>
Wed, 28 May 2008 14:04:21 +0000 (14:04 +0000)
temporary catchpoints.  In MI add missing fields 'reason', 'disp',
'bkptno'.
(print_mention_exception_catchpoint): Add 'Temporary' for temporary
catchpoints.
(handle_gnu_v3_exceptions): Use tempflag.

gdb/ChangeLog
gdb/breakpoint.c

index dfe0321..b32c75e 100644 (file)
@@ -1,3 +1,12 @@
+2008-05-28  Aleksandar Ristovski  <aristovski@qnx.com>
+
+       * breakpoint.c (print_exception_catchpoint): In CLI add 'Temporary' for
+       temporary catchpoints.  In MI add missing fields 'reason', 'disp', 
+       'bkptno'.
+       (print_mention_exception_catchpoint): Add 'Temporary' for temporary
+       catchpoints.
+       (handle_gnu_v3_exceptions): Use tempflag.
+
 2008-05-28  Vladimir Prus  <vladimir@codesourcery.com>
 
        Refactor varobj_update interface.
index 1e7f361..cf2399d 100644 (file)
@@ -6495,15 +6495,31 @@ catch_unload_command_1 (char *arg, int tempflag, int from_tty)
 static enum print_stop_action
 print_exception_catchpoint (struct breakpoint *b)
 {
-  annotate_catchpoint (b->number);
+  int bp_temp, bp_throw;
 
-  if (strstr (b->addr_string, "throw") != NULL)
-    printf_filtered (_("\nCatchpoint %d (exception thrown)\n"),
-                    b->number);
-  else
-    printf_filtered (_("\nCatchpoint %d (exception caught)\n"),
-                    b->number);
+  annotate_catchpoint (b->number);
 
+  bp_throw = strstr (b->addr_string, "throw") != NULL;
+  if (b->loc->address != b->loc->requested_address)
+    breakpoint_adjustment_warning (b->loc->requested_address,
+                                  b->loc->address,
+                                  b->number, 1);
+  bp_temp = b->loc->owner->disposition == disp_del;
+  ui_out_text (uiout, 
+              bp_temp ? "Temporary catchpoint "
+                      : "Catchpoint ");
+  if (!ui_out_is_mi_like_p (uiout))
+    ui_out_field_int (uiout, "bkptno", b->number);
+  ui_out_text (uiout,
+              bp_throw ? " (thrown), "
+                       : " (caught), ");
+  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, "disp", bpdisp_text (b->disposition));
+      ui_out_field_int (uiout, "bkptno", b->number);
+    }
   return PRINT_SRC_AND_LOC;
 }
 
@@ -6530,10 +6546,16 @@ print_one_exception_catchpoint (struct breakpoint *b, CORE_ADDR *last_addr)
 static void
 print_mention_exception_catchpoint (struct breakpoint *b)
 {
-  if (strstr (b->addr_string, "throw") != NULL)
-    printf_filtered (_("Catchpoint %d (throw)"), b->number);
-  else
-    printf_filtered (_("Catchpoint %d (catch)"), b->number);
+  int bp_temp;
+  int bp_throw;
+
+  bp_temp = b->loc->owner->disposition == disp_del;
+  bp_throw = strstr (b->addr_string, "throw") != NULL;
+  ui_out_text (uiout, bp_temp ? _("Temporary catchpoint ")
+                             : _("Catchpoint "));
+  ui_out_field_int (uiout, "bkptno", b->number);
+  ui_out_text (uiout, bp_throw ? _(" (throw)")
+                              : _(" (catch)"));
 }
 
 static struct breakpoint_ops gnu_v3_exception_catchpoint_ops = {
@@ -6555,7 +6577,7 @@ handle_gnu_v3_exceptions (int tempflag, char *cond_string,
 
   break_command_really (trigger_func_name, cond_string, -1,
                        0 /* condition and thread are valid.  */,
-                       0, 0,
+                       tempflag, 0,
                        0,
                        AUTO_BOOLEAN_TRUE /* pending */,
                        &gnu_v3_exception_catchpoint_ops, from_tty);