Convert say_where to method on code_breakpoint
authorTom Tromey <tromey@adacore.com>
Tue, 10 Jan 2023 15:17:28 +0000 (08:17 -0700)
committerTom Tromey <tromey@adacore.com>
Tue, 10 Jan 2023 21:09:32 +0000 (14:09 -0700)
'say_where' is only useful (and only called for) code breakpoints, so
convert it to be a protected method on code_breakpoint.

gdb/breakpoint.c
gdb/breakpoint.h

index 8cfc46e0bed4be52d50e5de01fffde721d702be1..6762fad5d2c74f4a49fc0e3a5a4fcc24579ac138 100644 (file)
@@ -11496,11 +11496,10 @@ bpstat_remove_breakpoint_callback (struct thread_info *th, void *data)
   return 0;
 }
 
-/* Helper for breakpoint and tracepoint breakpoint->mention
-   callbacks.  */
+/* See breakpoint.h.  */
 
-static void
-say_where (const breakpoint *b)
+void
+code_breakpoint::say_where () const
 {
   struct value_print_options opts;
 
@@ -11508,58 +11507,58 @@ say_where (const breakpoint *b)
 
   /* i18n: cagney/2005-02-11: Below needs to be merged into a
      single string.  */
-  if (b->loc == NULL)
+  if (loc == NULL)
     {
       /* For pending locations, the output differs slightly based
-        on b->extra_string.  If this is non-NULL, it contains either
+        on extra_string.  If this is non-NULL, it contains either
         a condition or dprintf arguments.  */
-      if (b->extra_string == NULL)
+      if (extra_string == NULL)
        {
-         gdb_printf (_(" (%s) pending."), b->locspec->to_string ());
+         gdb_printf (_(" (%s) pending."), locspec->to_string ());
        }
-      else if (b->type == bp_dprintf)
+      else if (type == bp_dprintf)
        {
          gdb_printf (_(" (%s,%s) pending."),
-                     b->locspec->to_string (),
-                     b->extra_string.get ());
+                     locspec->to_string (),
+                     extra_string.get ());
        }
       else
        {
          gdb_printf (_(" (%s %s) pending."),
-                     b->locspec->to_string (),
-                     b->extra_string.get ());
+                     locspec->to_string (),
+                     extra_string.get ());
        }
     }
   else
     {
-      if (opts.addressprint || b->loc->symtab == NULL)
+      if (opts.addressprint || loc->symtab == NULL)
        gdb_printf (" at %ps",
                    styled_string (address_style.style (),
-                                  paddress (b->loc->gdbarch,
-                                            b->loc->address)));
-      if (b->loc->symtab != NULL)
+                                  paddress (loc->gdbarch,
+                                            loc->address)));
+      if (loc->symtab != NULL)
        {
          /* If there is a single location, we can print the location
             more nicely.  */
-         if (b->loc->next == NULL)
+         if (loc->next == NULL)
            {
              const char *filename
-               = symtab_to_filename_for_display (b->loc->symtab);
+               = symtab_to_filename_for_display (loc->symtab);
              gdb_printf (": file %ps, line %d.",
                          styled_string (file_name_style.style (),
                                         filename),
-                         b->loc->line_number);
+                         loc->line_number);
            }
          else
            /* This is not ideal, but each location may have a
               different file name, and this at least reflects the
               real situation somewhat.  */
-           gdb_printf (": %s.", b->locspec->to_string ());
+           gdb_printf (": %s.", locspec->to_string ());
        }
 
-      if (b->loc->next)
+      if (loc->next)
        {
-         struct bp_location *loc = b->loc;
+         struct bp_location *loc = loc;
          int n = 0;
          for (; loc; loc = loc->next)
            ++n;
@@ -11794,7 +11793,7 @@ ordinary_breakpoint::print_mention () const
       break;
     }
 
-  say_where (this);
+  say_where ();
 }
 
 void
@@ -12054,7 +12053,7 @@ tracepoint::print_mention () const
       internal_error (_("unhandled tracepoint type %d"), (int) type);
     }
 
-  say_where (this);
+  say_where ();
 }
 
 void
index 7289a09e95c56ec3ee3397905c290dd758a1bdc6..399bd03797750b412f9bb5f6800f1683ad3b7ab2 100644 (file)
@@ -898,6 +898,10 @@ protected:
        (location_spec *locspec,
        struct program_space *search_pspace,
        int *found);
+
+  /* Helper for breakpoint and tracepoint breakpoint->mention
+     callbacks.  */
+  void say_where () const;
 };
 
 /* An instance of this type is used to represent a watchpoint,