Fix dwarf2_string_attr for -gsplit-dwarf
[deliverable/binutils-gdb.git] / gdb / breakpoint.c
index a848aea77af6d3d0b88350e9440541827add406b..3dc9112690251774b12062f5c304078ca02962b3 100644 (file)
@@ -6808,7 +6808,6 @@ breakpoint_1 (char *args, int allflag,
   struct breakpoint *b;
   struct bp_location *last_loc = NULL;
   int nr_printable_breakpoints;
-  struct cleanup *bkpttbl_chain;
   struct value_print_options opts;
   int print_address_bits = 0;
   int print_type_col_width = 14;
@@ -6851,77 +6850,71 @@ breakpoint_1 (char *args, int allflag,
        }
     }
 
-  if (opts.addressprint)
-    bkpttbl_chain 
-      = make_cleanup_ui_out_table_begin_end (uiout, 6,
-                                            nr_printable_breakpoints,
-                                             "BreakpointTable");
-  else
-    bkpttbl_chain 
-      = make_cleanup_ui_out_table_begin_end (uiout, 5,
-                                            nr_printable_breakpoints,
-                                             "BreakpointTable");
-
-  if (nr_printable_breakpoints > 0)
-    annotate_breakpoints_headers ();
-  if (nr_printable_breakpoints > 0)
-    annotate_field (0);
-  uiout->table_header (7, ui_left, "number", "Num"); /* 1 */
-  if (nr_printable_breakpoints > 0)
-    annotate_field (1);
-  uiout->table_header (print_type_col_width, ui_left, "type", "Type"); /* 2 */
-  if (nr_printable_breakpoints > 0)
-    annotate_field (2);
-  uiout->table_header (4, ui_left, "disp", "Disp"); /* 3 */
-  if (nr_printable_breakpoints > 0)
-    annotate_field (3);
-  uiout->table_header (3, ui_left, "enabled", "Enb"); /* 4 */
-  if (opts.addressprint)
-    {
-      if (nr_printable_breakpoints > 0)
-       annotate_field (4);
-      if (print_address_bits <= 32)
-       uiout->table_header (10, ui_left, "addr", "Address"); /* 5 */
-      else
-       uiout->table_header (18, ui_left, "addr", "Address"); /* 5 */
-    }
-  if (nr_printable_breakpoints > 0)
-    annotate_field (5);
-  uiout->table_header (40, ui_noalign, "what", "What"); /* 6 */
-  uiout->table_body ();
-  if (nr_printable_breakpoints > 0)
-    annotate_breakpoints_table ();
-
-  ALL_BREAKPOINTS (b)
-    {
-      QUIT;
-      /* If we have a filter, only list the breakpoints it accepts.  */
-      if (filter && !filter (b))
-       continue;
+  {
+    ui_out_emit_table table_emitter (uiout,
+                                    opts.addressprint ? 6 : 5,
+                                    nr_printable_breakpoints,
+                                    "BreakpointTable");
+
+    if (nr_printable_breakpoints > 0)
+      annotate_breakpoints_headers ();
+    if (nr_printable_breakpoints > 0)
+      annotate_field (0);
+    uiout->table_header (7, ui_left, "number", "Num"); /* 1 */
+    if (nr_printable_breakpoints > 0)
+      annotate_field (1);
+    uiout->table_header (print_type_col_width, ui_left, "type", "Type"); /* 2 */
+    if (nr_printable_breakpoints > 0)
+      annotate_field (2);
+    uiout->table_header (4, ui_left, "disp", "Disp"); /* 3 */
+    if (nr_printable_breakpoints > 0)
+      annotate_field (3);
+    uiout->table_header (3, ui_left, "enabled", "Enb"); /* 4 */
+    if (opts.addressprint)
+      {
+       if (nr_printable_breakpoints > 0)
+         annotate_field (4);
+       if (print_address_bits <= 32)
+         uiout->table_header (10, ui_left, "addr", "Address"); /* 5 */
+       else
+         uiout->table_header (18, ui_left, "addr", "Address"); /* 5 */
+      }
+    if (nr_printable_breakpoints > 0)
+      annotate_field (5);
+    uiout->table_header (40, ui_noalign, "what", "What"); /* 6 */
+    uiout->table_body ();
+    if (nr_printable_breakpoints > 0)
+      annotate_breakpoints_table ();
+
+    ALL_BREAKPOINTS (b)
+      {
+       QUIT;
+       /* If we have a filter, only list the breakpoints it accepts.  */
+       if (filter && !filter (b))
+         continue;
 
-      /* If we have an "args" string, it is a list of breakpoints to 
-        accept.  Skip the others.  */
+       /* If we have an "args" string, it is a list of breakpoints to 
+          accept.  Skip the others.  */
 
-      if (args != NULL && *args != '\0')
-       {
-         if (allflag)  /* maintenance info breakpoint */
-           {
-             if (parse_and_eval_long (args) != b->number)
-               continue;
-           }
-         else          /* all others */
-           {
-             if (!number_is_in_list (args, b->number))
-               continue;
-           }
-       }
-      /* We only print out user settable breakpoints unless the
-        allflag is set.  */
-      if (allflag || user_breakpoint_p (b))
-       print_one_breakpoint (b, &last_loc, allflag);
-    }
-
-  do_cleanups (bkpttbl_chain);
+       if (args != NULL && *args != '\0')
+         {
+           if (allflag)        /* maintenance info breakpoint */
+             {
+               if (parse_and_eval_long (args) != b->number)
+                 continue;
+             }
+           else                /* all others */
+             {
+               if (!number_is_in_list (args, b->number))
+                 continue;
+             }
+         }
+       /* We only print out user settable breakpoints unless the
+          allflag is set.  */
+       if (allflag || user_breakpoint_p (b))
+         print_one_breakpoint (b, &last_loc, allflag);
+      }
+  }
 
   if (nr_printable_breakpoints == 0)
     {
@@ -15485,7 +15478,6 @@ save_breakpoints (char *filename, int from_tty,
 {
   struct breakpoint *tp;
   int any = 0;
-  struct cleanup *cleanup;
   int extra_trace_bits = 0;
 
   if (filename == 0 || *filename == 0)
@@ -15519,14 +15511,13 @@ save_breakpoints (char *filename, int from_tty,
       return;
     }
 
-  filename = tilde_expand (filename);
-  cleanup = make_cleanup (xfree, filename);
+  gdb::unique_xmalloc_ptr<char> expanded_filename (tilde_expand (filename));
 
   stdio_file fp;
 
-  if (!fp.open (filename, "w"))
+  if (!fp.open (expanded_filename.get (), "w"))
     error (_("Unable to open file '%s' for saving (%s)"),
-          filename, safe_strerror (errno));
+          expanded_filename.get (), safe_strerror (errno));
 
   if (extra_trace_bits)
     save_trace_state_variables (&fp);
@@ -15594,8 +15585,7 @@ save_breakpoints (char *filename, int from_tty,
     fp.printf ("set default-collect %s\n", default_collect);
 
   if (from_tty)
-    printf_filtered (_("Saved to file '%s'.\n"), filename);
-  do_cleanups (cleanup);
+    printf_filtered (_("Saved to file '%s'.\n"), expanded_filename.get ());
 }
 
 /* The `save breakpoints' command.  */
This page took 0.027465 seconds and 4 git commands to generate.