gdb/
authorYao Qi <yao@codesourcery.com>
Mon, 10 Oct 2011 02:50:48 +0000 (02:50 +0000)
committerYao Qi <yao@codesourcery.com>
Mon, 10 Oct 2011 02:50:48 +0000 (02:50 +0000)
* valprint.c (value_check_printable): Add one parameter OPTIONS.
Honor OPTIONS and VAL's type.
(common_val_print, value_print): Update to pass one more parameter.

gdb/ChangeLog
gdb/valprint.c

index 47c815e..7534495 100644 (file)
@@ -1,3 +1,9 @@
+2011-10-09  Yao Qi  <yao@codesourcery.com>
+
+       * valprint.c (value_check_printable): Add one parameter OPTIONS.
+       Honor OPTIONS and VAL's type.
+       (common_val_print, value_print): Update to pass one more parameter.
+
 2011-10-09  Doug Evans  <dje@google.com>
 
        Add new "alias" command.
index b26924a..b4ac4ec 100644 (file)
@@ -399,11 +399,12 @@ val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
 }
 
 /* Check whether the value VAL is printable.  Return 1 if it is;
-   return 0 and print an appropriate error message to STREAM if it
-   is not.  */
+   return 0 and print an appropriate error message to STREAM according to
+   OPTIONS if it is not.  */
 
 static int
-value_check_printable (struct value *val, struct ui_file *stream)
+value_check_printable (struct value *val, struct ui_file *stream,
+                      const struct value_print_options *options)
 {
   if (val == 0)
     {
@@ -413,7 +414,10 @@ value_check_printable (struct value *val, struct ui_file *stream)
 
   if (value_entirely_optimized_out (val))
     {
-      val_print_optimized_out (stream);
+      if (options->summary && !scalar_type_p (value_type (val)))
+       fprintf_filtered (stream, "...");
+      else
+       val_print_optimized_out (stream);
       return 0;
     }
 
@@ -441,7 +445,7 @@ common_val_print (struct value *val, struct ui_file *stream, int recurse,
                  const struct value_print_options *options,
                  const struct language_defn *language)
 {
-  if (!value_check_printable (val, stream))
+  if (!value_check_printable (val, stream, options))
     return 0;
 
   if (language->la_language == language_ada)
@@ -467,7 +471,7 @@ int
 value_print (struct value *val, struct ui_file *stream,
             const struct value_print_options *options)
 {
-  if (!value_check_printable (val, stream))
+  if (!value_check_printable (val, stream, options))
     return 0;
 
   if (!options->raw)