Print <unavailable> for unavailable registers in info register output.
[deliverable/binutils-gdb.git] / gdb / infcmd.c
index 4ad8ad30738c28b161423bbbf32019f04f2917f1..d678e9f08027f0735ce3e9cef879fbf56f97d593 100644 (file)
@@ -2028,21 +2028,13 @@ default_print_one_register_info (struct ui_file *file,
                                 struct value *val)
 {
   struct type *regtype = value_type (val);
+  int print_raw_format;
 
   fputs_filtered (name, file);
   print_spaces_filtered (15 - strlen (name), file);
 
-  if (!value_entirely_available (val))
-    {
-      fprintf_filtered (file, "*value not available*\n");
-      return;
-    }
-  else if (value_optimized_out (val))
-    {
-      val_print_optimized_out (val, file);
-      fprintf_filtered (file, "\n");
-      return;
-    }
+  print_raw_format = (value_entirely_available (val)
+                     && !value_optimized_out (val));
 
   /* If virtual format is floating, print it that way, and in raw
      hex.  */
@@ -2062,9 +2054,12 @@ default_print_one_register_info (struct ui_file *file,
                 value_embedded_offset (val), 0,
                 file, 0, val, &opts, current_language);
 
-      fprintf_filtered (file, "\t(raw ");
-      print_hex_chars (file, valaddr, TYPE_LENGTH (regtype), byte_order);
-      fprintf_filtered (file, ")");
+      if (print_raw_format)
+       {
+         fprintf_filtered (file, "\t(raw ");
+         print_hex_chars (file, valaddr, TYPE_LENGTH (regtype), byte_order);
+         fprintf_filtered (file, ")");
+       }
     }
   else
     {
@@ -2079,7 +2074,7 @@ default_print_one_register_info (struct ui_file *file,
                 file, 0, val, &opts, current_language);
       /* If not a vector register, print it also according to its
         natural format.  */
-      if (TYPE_VECTOR (regtype) == 0)
+      if (print_raw_format && TYPE_VECTOR (regtype) == 0)
        {
          get_user_print_options (&opts);
          opts.deref_ref = 1;
This page took 0.027548 seconds and 4 git commands to generate.