]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Style addresses
authorTom Tromey <tom@tromey.com>
Fri, 19 Oct 2018 22:22:35 +0000 (16:22 -0600)
committerTom Tromey <tom@tromey.com>
Fri, 28 Dec 2018 19:49:52 +0000 (12:49 -0700)
This changes gdb to style addresses.

gdb/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

* ui-out.h (enum class ui_out_style_kind) <ADDRESS>: New
constant.
* ui-out.c (ui_out::field_core_addr): Add styling.
* stack.c (print_frame): Add styling.
* printcmd.c (print_address): Add styling.
(print_address_demangle, info_address_command): Likewise.
* cli/cli-style.h (address_style): Declare.
* cli/cli-style.c (address_style): New global.
(_initialize_cli_style): Register new commands.
* cli-out.c (cli_ui_out::do_field_string): Update.

gdb/testsuite/ChangeLog
2018-12-28  Tom Tromey  <tom@tromey.com>

* gdb.base/style.exp: Update test to check for address styling.

gdb/ChangeLog
gdb/cli-out.c
gdb/cli/cli-style.c
gdb/cli/cli-style.h
gdb/printcmd.c
gdb/stack.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/style.exp
gdb/ui-out.c
gdb/ui-out.h

index 1067973d3135a810653521213338898cbd79706d..c98d292087b31a3a8d55a758a3f1a1f6ac4587fc 100644 (file)
@@ -1,3 +1,16 @@
+2018-12-28  Tom Tromey  <tom@tromey.com>
+
+       * ui-out.h (enum class ui_out_style_kind) <ADDRESS>: New
+       constant.
+       * ui-out.c (ui_out::field_core_addr): Add styling.
+       * stack.c (print_frame): Add styling.
+       * printcmd.c (print_address): Add styling.
+       (print_address_demangle, info_address_command): Likewise.
+       * cli/cli-style.h (address_style): Declare.
+       * cli/cli-style.c (address_style): New global.
+       (_initialize_cli_style): Register new commands.
+       * cli-out.c (cli_ui_out::do_field_string): Update.
+
 2018-12-28  Tom Tromey  <tom@tromey.com>
 
        * symfile.c (symbol_file_add_with_addrs): Style file name.
index e1005e1b35adee4afc817c2a293092c2267e83b7..691f993bad3d398fa052c9eaee47d63853f561af 100644 (file)
@@ -176,6 +176,9 @@ cli_ui_out::do_field_string (int fldno, int width, ui_align align,
        case ui_out_style_kind::VARIABLE:
          fstyle = variable_name_style.style ();
          break;
+       case ui_out_style_kind::ADDRESS:
+         fstyle = address_style.style ();
+         break;
        default:
          gdb_assert_not_reached ("missing case");
        }
index 929f18f4ba4d4bc63619174fe020f0b791f6c45a..0d850b1da47824e28dde0d5a8b276f20d6d9b503 100644 (file)
@@ -66,6 +66,10 @@ cli_style_option variable_name_style (ui_file_style::CYAN);
 
 /* See cli-style.h.  */
 
+cli_style_option address_style (ui_file_style::BLUE);
+
+/* See cli-style.h.  */
+
 cli_style_option::cli_style_option (ui_file_style::basic_color fg)
   : m_foreground (cli_colors[fg - ui_file_style::NONE]),
     m_background (cli_colors[0]),
@@ -265,4 +269,11 @@ Variable name display styling\n\
 Configure variable name colors and display intensity"),
                                            &style_set_list,
                                            &style_show_list);
+  address_style.add_setshow_commands ("address", no_class,
+                                     "style address",
+                                     _("\
+Address display styling\n\
+Configure address colors and display intensity"),
+                                     &style_set_list,
+                                     &style_show_list);
 }
index 80ba7bf2aafe8f944f7bfbe5f02d57b241fb79a4..e4af5a49292b672c638e91a9abfc13d4d1f62208 100644 (file)
@@ -86,6 +86,9 @@ extern cli_style_option function_name_style;
 /* The variable name style.  */
 extern cli_style_option variable_name_style;
 
+/* The address style.  */
+extern cli_style_option address_style;
+
 /* True if styling is enabled.  */
 extern int cli_styling;
 
index c5b6b1a75b268b309c9f922f63da4456331c0870..98f5b23ce5c64a1a5f0832f007c56b44c134a1cb 100644 (file)
@@ -693,7 +693,7 @@ void
 print_address (struct gdbarch *gdbarch,
               CORE_ADDR addr, struct ui_file *stream)
 {
-  fputs_filtered (paddress (gdbarch, addr), stream);
+  fputs_styled (paddress (gdbarch, addr), address_style.style (), stream);
   print_address_symbolic (gdbarch, addr, stream, asm_demangle, " ");
 }
 
@@ -726,7 +726,7 @@ print_address_demangle (const struct value_print_options *opts,
 {
   if (opts->addressprint)
     {
-      fputs_filtered (paddress (gdbarch, addr), stream);
+      fputs_styled (paddress (gdbarch, addr), address_style.style (), stream);
       print_address_symbolic (gdbarch, addr, stream, do_demangle, " ");
     }
   else
@@ -1404,14 +1404,17 @@ info_address_command (const char *exp, int from_tty)
          fprintf_symbol_filtered (gdb_stdout, exp,
                                   current_language->la_language, DMGL_ANSI);
          printf_filtered ("\" is at ");
-         fputs_filtered (paddress (gdbarch, load_addr), gdb_stdout);
+         fputs_styled (paddress (gdbarch, load_addr), address_style.style (),
+                       gdb_stdout);
          printf_filtered (" in a file compiled without debugging");
          section = MSYMBOL_OBJ_SECTION (objfile, msymbol.minsym);
          if (section_is_overlay (section))
            {
              load_addr = overlay_unmapped_address (load_addr, section);
              printf_filtered (",\n -- loaded at ");
-             fputs_filtered (paddress (gdbarch, load_addr), gdb_stdout);
+             fputs_styled (paddress (gdbarch, load_addr),
+                           address_style.style (),
+                           gdb_stdout);
              printf_filtered (" in overlay section %s",
                               section->the_bfd_section->name);
            }
@@ -1451,12 +1454,14 @@ info_address_command (const char *exp, int from_tty)
     case LOC_LABEL:
       printf_filtered ("a label at address ");
       load_addr = SYMBOL_VALUE_ADDRESS (sym);
-      fputs_filtered (paddress (gdbarch, load_addr), gdb_stdout);
+      fputs_styled (paddress (gdbarch, load_addr), address_style.style (),
+                   gdb_stdout);
       if (section_is_overlay (section))
        {
          load_addr = overlay_unmapped_address (load_addr, section);
          printf_filtered (",\n -- loaded at ");
-         fputs_filtered (paddress (gdbarch, load_addr), gdb_stdout);
+         fputs_styled (paddress (gdbarch, load_addr), address_style.style (),
+                       gdb_stdout);
          printf_filtered (" in overlay section %s",
                           section->the_bfd_section->name);
        }
@@ -1485,12 +1490,14 @@ info_address_command (const char *exp, int from_tty)
     case LOC_STATIC:
       printf_filtered (_("static storage at address "));
       load_addr = SYMBOL_VALUE_ADDRESS (sym);
-      fputs_filtered (paddress (gdbarch, load_addr), gdb_stdout);
+      fputs_styled (paddress (gdbarch, load_addr), address_style.style (),
+                   gdb_stdout);
       if (section_is_overlay (section))
        {
          load_addr = overlay_unmapped_address (load_addr, section);
          printf_filtered (_(",\n -- loaded at "));
-         fputs_filtered (paddress (gdbarch, load_addr), gdb_stdout);
+         fputs_styled (paddress (gdbarch, load_addr), address_style.style (),
+                       gdb_stdout);
          printf_filtered (_(" in overlay section %s"),
                           section->the_bfd_section->name);
        }
@@ -1522,12 +1529,14 @@ info_address_command (const char *exp, int from_tty)
     case LOC_BLOCK:
       printf_filtered (_("a function at address "));
       load_addr = BLOCK_ENTRY_PC (SYMBOL_BLOCK_VALUE (sym));
-      fputs_filtered (paddress (gdbarch, load_addr), gdb_stdout);
+      fputs_styled (paddress (gdbarch, load_addr), address_style.style (),
+                   gdb_stdout);
       if (section_is_overlay (section))
        {
          load_addr = overlay_unmapped_address (load_addr, section);
          printf_filtered (_(",\n -- loaded at "));
-         fputs_filtered (paddress (gdbarch, load_addr), gdb_stdout);
+         fputs_styled (paddress (gdbarch, load_addr), address_style.style (),
+                       gdb_stdout);
          printf_filtered (_(" in overlay section %s"),
                           section->the_bfd_section->name);
        }
@@ -1557,12 +1566,15 @@ info_address_command (const char *exp, int from_tty)
              {
                load_addr = BMSYMBOL_VALUE_ADDRESS (msym);
                printf_filtered (_("static storage at address "));
-               fputs_filtered (paddress (gdbarch, load_addr), gdb_stdout);
+               fputs_styled (paddress (gdbarch, load_addr),
+                             address_style.style (), gdb_stdout);
                if (section_is_overlay (section))
                  {
                    load_addr = overlay_unmapped_address (load_addr, section);
                    printf_filtered (_(",\n -- loaded at "));
-                   fputs_filtered (paddress (gdbarch, load_addr), gdb_stdout);
+                   fputs_styled (paddress (gdbarch, load_addr),
+                                 address_style.style (),
+                                 gdb_stdout);
                    printf_filtered (_(" in overlay section %s"),
                                     section->the_bfd_section->name);
                  }
index 103b8c9531ed80d48e574b59731e9866f868c56c..a139e9fa58eeb36ec26883da52bb50a7e085b79a 100644 (file)
@@ -1176,7 +1176,8 @@ print_frame (struct frame_info *frame, int print_level,
          if (pc_p)
            uiout->field_core_addr ("addr", gdbarch, pc);
          else
-           uiout->field_string ("addr", "<unavailable>");
+           uiout->field_string ("addr", "<unavailable>",
+                                ui_out_style_kind::ADDRESS);
          annotate_frame_address_end ();
          uiout->text (" in ");
        }
index ceef60648df32412e62f2ec63afe005be920bc81..b846b0c7af60c5c741e5a2e3daf946b9e9603eee 100644 (file)
@@ -1,3 +1,7 @@
+2018-12-28  Tom Tromey  <tom@tromey.com>
+
+       * gdb.base/style.exp: Update test to check for address styling.
+
 2018-12-28  Tom Tromey  <tom@tromey.com>
 
        * gdb.base/style.exp: Add test for styling of "Reading symbols"
index 8bababccf846fb0f9bf83b96852f20f2634dd711..191130ce6f30a330cb03ab079d419267f612ef16 100644 (file)
@@ -43,7 +43,7 @@ save_vars { env(TERM) } {
 
     gdb_test "break main" "file $base_file_expr.*"
 
-    gdb_test "print &main" " = .* <$main_expr>"
+    gdb_test "print &main" " = .* \033\\\[34m$hex\033\\\[m <$main_expr>"
 
     gdb_exit
     gdb_spawn
index 761d6c0745865a5d36d54a2f2bb783f9400c9bcb..49f04dd936fb036a53694f75a221df2f918b7c11 100644 (file)
@@ -469,7 +469,8 @@ void
 ui_out::field_core_addr (const char *fldname, struct gdbarch *gdbarch,
                         CORE_ADDR address)
 {
-  field_string (fldname, print_core_address (gdbarch, address));
+  field_string (fldname, print_core_address (gdbarch, address),
+               ui_out_style_kind::ADDRESS);
 }
 
 void
index 93be9a91b2666bb91fd70f2685c74d6528d4de70..96466d8023334b1ac2a893f3bb55b8d54c2b0791 100644 (file)
@@ -77,7 +77,9 @@ enum class ui_out_style_kind
   /* Function name.  */
   FUNCTION,
   /* Variable name.  */
-  VARIABLE
+  VARIABLE,
+  /* Address.  */
+  ADDRESS
 };
 
 class ui_out