* [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
@ 2019-08-07 19:39 Philippe Waroquiers
2019-08-07 21:38 ` Tom Tromey
` (4 more replies)
0 siblings, 5 replies; 15+ messages in thread
From: Philippe Waroquiers @ 2019-08-07 19:39 UTC (permalink / raw)
To: gdb-patches; +Cc: Philippe Waroquiers
The option framework documentation was speaking about a 'print -raw'
option, but this option does not exist.
This patch implements -raw-values option that tells to ignore the
active pretty printers when printing a value.
As we already have -raw-frame-arguments, I thought -raw-values
was more clear, in particular to differentiate
set print raw-values and set print raw-frame-arguments.
gdb/doc/ChangeLog
2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.texinfo (Command Options): Use -p and -pretty in the example,
as -r is ambiguous. Update the print - TAB TAB completion result.
(Data): Document new option -raw-values. Use -p and -pretty in the
example, as -r is ambiguous.
(Print Settings): Document set print raw values.
(Pretty-Printer Commands): Document interaction between enabled
pretty printers and -raw-values/-raw-frame-arguments.
gdb/ChangeLog
2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* NEWS: Document -raw-values option and the related setting commands.
* printcmd.c (print_command_parse_format): Do not set opts->raw off,
only set it on when /r is given.
* valprint.c (value_print_option_defs): New element raw-values.
* Makefile.in: Add the new file.
2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.base/options.exp: Add -raw-values in the print completion list.
* gdb.python/py-prettyprint.exp: Add tests for -raw-values.
---
gdb/NEWS | 11 ++++-
gdb/doc/gdb.texinfo | 51 +++++++++++++++++----
gdb/printcmd.c | 6 ++-
gdb/testsuite/gdb.base/options.exp | 1 +
gdb/testsuite/gdb.python/py-prettyprint.exp | 10 ++++
gdb/valprint.c | 10 ++++
6 files changed, 75 insertions(+), 14 deletions(-)
diff --git a/gdb/NEWS b/gdb/NEWS
index fa01adf6e8..8f27b102ea 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -101,6 +101,12 @@ show print max-depth
The default max-depth is 20, but this can be set to unlimited to get
the old behavior back.
+set print raw-values [on|off]
+show print raw-values
+ By default, GDB applies the enabled pretty printers when printing a
+ value. This allows to ignore the enabled pretty printers for a series
+ of commands. The default is 'off'.
+
set logging debugredirect [on|off]
By default, GDB debug output will go to both the terminal and the logfile.
Set if you want debug output to go only to the log file.
@@ -200,6 +206,7 @@ maint show test-options-completion-result
-null-stop [on|off]
-object [on|off]
-pretty [on|off]
+ -raw-values [on|off]
-repeats NUMBER|unlimited
-static-members [on|off]
-symbol [on|off]
@@ -244,11 +251,11 @@ maint show test-options-completion-result
"on" if omitted. This allows writing compact command invocations,
like for example:
- (gdb) p -r -p -o 0 -- *myptr
+ (gdb) p -ra -p -o 0 -- *myptr
The above is equivalent to:
- (gdb) print -raw -pretty -object off -- *myptr
+ (gdb) print -raw-values -pretty -object off -- *myptr
** The "info types" command now supports the '-q' flag to disable
printing of some header information in a similar fashion to "info
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 7f8c0aff1c..f65f8b1764 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -1936,8 +1936,8 @@ Some commands take raw input as argument. For example, the print
command processes arbitrary expressions in any of the languages
supported by @value{GDBN}. With such commands, because raw input may
start with a leading dash that would be confused with an option or any
-of its abbreviations, e.g.@: @code{print -r} (short for @code{print
--raw} or printing negative @code{r}?), if you specify any command
+of its abbreviations, e.g.@: @code{print -p} (short for @code{print
+-pretty} or printing negative @code{p}?), if you specify any command
option, then you must use a double-dash (@code{--}) delimiter to
indicate the end of options.
@@ -1963,10 +1963,10 @@ on @code{-} after the command name. For example:
@smallexample
(@value{GDBP}) print -@key{TAB}@key{TAB}
--address -max-depth -repeats -vtbl
--array -null-stop -static-members
--array-indexes -object -symbol
--elements -pretty -union
+-address -max-depth -raw-values -union
+-array -null-stop -repeats -vtbl
+-array-indexes -object -static-members
+-elements -pretty -symbol
@end smallexample
Completion will in some cases guide you with a suggestion of what kind
@@ -9541,6 +9541,11 @@ Set printing C@t{++} virtual function tables. Related setting:
Set pretty formatting of structures. Related setting: @ref{set print
pretty}.
+@item -raw-values [@code{on}|@code{off}]
+Set whether to print values in raw form, bypassing any
+pretty-printers for that value. Related setting: @ref{set print
+raw-values}.
+
@item -repeats @var{number-of-repeats}|@code{unlimited}
Set threshold for repeated print elements. @code{unlimited} causes
all elements to be individually printed. Related setting: @ref{set
@@ -9568,17 +9573,17 @@ may look like options (including abbreviations), if you specify any
command option, then you must use a double dash (@code{--}) to mark
the end of option processing.
-For example, this prints the value of the @code{-r} expression:
+For example, this prints the value of the @code{-p} expression:
@smallexample
-(@value{GDBP}) print -r
+(@value{GDBP}) print -p
@end smallexample
While this repeats the last value in the value history (see below)
-with the @code{-raw} option in effect:
+with the @code{-pretty} option in effect:
@smallexample
-(@value{GDBP}) print -r --
+(@value{GDBP}) print -p --
@end smallexample
Here is an example including both on option and an expression:
@@ -11169,6 +11174,20 @@ This is the default format.
@item show print pretty
Show which format @value{GDBN} is using to print structures.
+@anchor{set print raw-values}
+@item set print raw-values on
+Print values in raw form, without applying the pretty
+printers for the value.
+
+@item set print raw-values off
+Print values in pretty-printed form, if there is a pretty-printer
+for the value (@pxref{Pretty Printing}),
+otherwise print the value in raw form.
+This is the default.
+
+@item show print raw-values
+Show whether to print values in raw form.
+
@item set print sevenbit-strings on
@cindex eight-bit characters in strings
@cindex octal escapes in strings
@@ -11508,6 +11527,18 @@ library2.so:
Note that for @code{bar} the entire printer can be disabled,
as can each individual subprinter.
+Printing values and frame arguments is done by default using
+the enabled pretty printers.
+
+The print option @code{-raw-values} and @value{GDBN} setting @xref{set
+print raw-values} can be used to print values without applying the
+enabled pretty printers.
+
+Similarly, the backtrace option @code{-raw-frame-arguments} and
+@value{GDBN} setting @xref{set print raw-frame-arguments} can be used
+to ignore the enabled pretty printers when printing frame argument
+values
+
@node Value History
@section Value History
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 7529842e73..9c3982338a 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -1142,6 +1142,9 @@ print_command_parse_format (const char **expp, const char *cmdname,
{
const char *exp = *expp;
+ /* opts->raw value might already have been set by 'set print raw-values'
+ or by using 'print -raw-values'.
+ So, do not set opts->raw to 0, only set it to 1 if /r is given. */
if (exp && *exp == '/')
{
format_data fmt;
@@ -1152,12 +1155,11 @@ print_command_parse_format (const char **expp, const char *cmdname,
last_format = fmt.format;
opts->format = fmt.format;
- opts->raw = fmt.raw;
+ opts->raw = opts->raw || fmt.raw;
}
else
{
opts->format = 0;
- opts->raw = 0;
}
*expp = exp;
diff --git a/gdb/testsuite/gdb.base/options.exp b/gdb/testsuite/gdb.base/options.exp
index 7a18fe936b..78ddc26577 100644
--- a/gdb/testsuite/gdb.base/options.exp
+++ b/gdb/testsuite/gdb.base/options.exp
@@ -168,6 +168,7 @@ proc_with_prefix test-print {{prefix ""}} {
"-null-stop"
"-object"
"-pretty"
+ "-raw-values"
"-repeats"
"-static-members"
"-symbol"
diff --git a/gdb/testsuite/gdb.python/py-prettyprint.exp b/gdb/testsuite/gdb.python/py-prettyprint.exp
index 82e7e65031..3d88f7e9f2 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint.exp
+++ b/gdb/testsuite/gdb.python/py-prettyprint.exp
@@ -199,3 +199,13 @@ gdb_test_no_output "python enable_lookup_function ()"
gdb_test "print ss" " = a=< a=<1> b=<$hex>> b=< a=<2> b=<$hex>>" \
"print ss enabled #2"
+
+gdb_test "print -raw-values -- ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
+ "print -raw-values -- ss"
+
+gdb_test "print -raw-values on -- ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
+ "print -raw-values on -- ss"
+
+gdb_test "with print raw-values -- print ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
+ "with print raw-values -- print ss"
+
diff --git a/gdb/valprint.c b/gdb/valprint.c
index e5b28f3ee9..96e8ff6dca 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -3192,6 +3192,16 @@ Use \"unlimited\" to print the complete structure.")
NULL, /* help_doc */
},
+ boolean_option_def {
+ "raw-values",
+ [] (value_print_options *opt) { return &opt->raw; },
+ NULL, /* show_cmd_cb */
+ N_("Set whether to print values in raw form."),
+ N_("Show whether to print values in raw form."),
+ N_("If set, values are printed in raw form, bypassing any\n\
+pretty-printers for that value.")
+ },
+
uinteger_option_def {
"repeats",
[] (value_print_options *opt) { return &opt->repeat_count_threshold; },
--
2.20.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
2019-08-07 19:39 [RFA] Implement 'print -raw-values' and 'set print raw-values on|off' Philippe Waroquiers
@ 2019-08-07 21:38 ` Tom Tromey
2019-08-08 18:59 ` Philippe Waroquiers
2019-08-08 17:25 ` Eli Zaretskii
` (3 subsequent siblings)
4 siblings, 1 reply; 15+ messages in thread
From: Tom Tromey @ 2019-08-07 21:38 UTC (permalink / raw)
To: Philippe Waroquiers; +Cc: gdb-patches
>>>>> "Philippe" == Philippe Waroquiers <philippe.waroquiers@skynet.be> writes:
Philippe> This patch implements -raw-values option that tells to ignore the
Philippe> active pretty printers when printing a value.
FWIW I think "print/r" already covers this.
Maybe it's desirable to have a complete-able option for it?
Tom
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
2019-08-07 19:39 [RFA] Implement 'print -raw-values' and 'set print raw-values on|off' Philippe Waroquiers
2019-08-07 21:38 ` Tom Tromey
@ 2019-08-08 17:25 ` Eli Zaretskii
2019-09-07 11:42 ` PING " Philippe Waroquiers
` (2 subsequent siblings)
4 siblings, 0 replies; 15+ messages in thread
From: Eli Zaretskii @ 2019-08-08 17:25 UTC (permalink / raw)
To: Philippe Waroquiers; +Cc: gdb-patches
> From: Philippe Waroquiers <philippe.waroquiers@skynet.be>
> Cc: Philippe Waroquiers <philippe.waroquiers@skynet.be>
> Date: Wed, 7 Aug 2019 21:39:24 +0200
>
> diff --git a/gdb/NEWS b/gdb/NEWS
> index fa01adf6e8..8f27b102ea 100644
> --- a/gdb/NEWS
> +++ b/gdb/NEWS
> @@ -101,6 +101,12 @@ show print max-depth
> The default max-depth is 20, but this can be set to unlimited to get
> the old behavior back.
>
> +set print raw-values [on|off]
> +show print raw-values
> + By default, GDB applies the enabled pretty printers when printing a
> + value. This allows to ignore the enabled pretty printers for a series
> + of commands. The default is 'off'.
> +
> set logging debugredirect [on|off]
> By default, GDB debug output will go to both the terminal and the logfile.
> Set if you want debug output to go only to the log file.
> @@ -200,6 +206,7 @@ maint show test-options-completion-result
> -null-stop [on|off]
> -object [on|off]
> -pretty [on|off]
> + -raw-values [on|off]
> -repeats NUMBER|unlimited
> -static-members [on|off]
> -symbol [on|off]
> @@ -244,11 +251,11 @@ maint show test-options-completion-result
> "on" if omitted. This allows writing compact command invocations,
> like for example:
>
> - (gdb) p -r -p -o 0 -- *myptr
> + (gdb) p -ra -p -o 0 -- *myptr
>
> The above is equivalent to:
>
> - (gdb) print -raw -pretty -object off -- *myptr
> + (gdb) print -raw-values -pretty -object off -- *myptr
>
> ** The "info types" command now supports the '-q' flag to disable
> printing of some header information in a similar fashion to "info
This part is OK.
> +@item set print raw-values off
> +Print values in pretty-printed form, if there is a pretty-printer
> +for the value (@pxref{Pretty Printing}),
> +otherwise print the value in raw form.
> +This is the default.
I suggest a slight rewording:
+@anchor{set print raw-values}
+@item set print raw-values on
+Print values in raw form, without applying the pretty
+printers for the value.
+
+@item set print raw-values off
+Print values in pretty-printed form, if there is a pretty-printer
+for the value (@pxref{Pretty Printing}),
+otherwise print the value in raw form.
+
+The default setting is OFF.
> +The print option @code{-raw-values} and @value{GDBN} setting @xref{set
> +print raw-values} can be used to print values without applying the
This use of @xref is a bad idea, because the printed output and even
the Info output that result from this look like a typo. For starters,
@xref produces a capitalized "See", which is inappropriate in the
middle of a sentence.
My suggestion is to use the following style:
The print option @code{-raw-values} and @value{GDBN} setting
@code{set print raw-values} (@pxref{set print raw-values}) can be
used to print ...
Yes, this repeats some of the text, but there's nothing much we can do
about that.
> +Similarly, the backtrace option @code{-raw-frame-arguments} and
> +@value{GDBN} setting @xref{set print raw-frame-arguments} can be used
> +to ignore the enabled pretty printers when printing frame argument
> +values
Likewise here. Also, a period is missing at the end of the last
sentence.
Thanks.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
2019-08-07 21:38 ` Tom Tromey
@ 2019-08-08 18:59 ` Philippe Waroquiers
0 siblings, 0 replies; 15+ messages in thread
From: Philippe Waroquiers @ 2019-08-08 18:59 UTC (permalink / raw)
To: Tom Tromey; +Cc: gdb-patches
On Wed, 2019-08-07 at 15:38 -0600, Tom Tromey wrote:
> > > > > > "Philippe" == Philippe Waroquiers <philippe.waroquiers@skynet.be> writes:
>
> Philippe> This patch implements -raw-values option that tells to ignore the
> Philippe> active pretty printers when printing a value.
>
> FWIW I think "print/r" already covers this.
Yes.
In fact, someone at my work was using /r, and I had no idea what this was.
Searching at home, I found the print -raw doc, but not the -raw option.
BTW, I could not find any description of /r:
nothing found in help print, and nothing found in the manual.
Is /r documented somewhere ?
(might be good to reference /r in the -raw-values doc and manual).
>
> Maybe it's desirable to have a complete-able option for it?
Yes. /r only works on the current print command.
-raw-values is complete-able, corresponds to a GDB setting,
can be used in the "with" command.
Philippe
^ permalink raw reply [flat|nested] 15+ messages in thread
* PING Re: [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
2019-08-07 19:39 [RFA] Implement 'print -raw-values' and 'set print raw-values on|off' Philippe Waroquiers
2019-08-07 21:38 ` Tom Tromey
2019-08-08 17:25 ` Eli Zaretskii
@ 2019-09-07 11:42 ` Philippe Waroquiers
2019-09-29 15:29 ` PING^2 " Philippe Waroquiers
2019-12-04 3:43 ` Simon Marchi
4 siblings, 0 replies; 15+ messages in thread
From: Philippe Waroquiers @ 2019-09-07 11:42 UTC (permalink / raw)
To: gdb-patches
Ping.
Thanks
Philippe
On Wed, 2019-08-07 at 21:39 +0200, Philippe Waroquiers wrote:
> The option framework documentation was speaking about a 'print -raw'
> option, but this option does not exist.
>
> This patch implements -raw-values option that tells to ignore the
> active pretty printers when printing a value.
> As we already have -raw-frame-arguments, I thought -raw-values
> was more clear, in particular to differentiate
> set print raw-values and set print raw-frame-arguments.
>
> gdb/doc/ChangeLog
> 2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
>
> * gdb.texinfo (Command Options): Use -p and -pretty in the example,
> as -r is ambiguous. Update the print - TAB TAB completion result.
> (Data): Document new option -raw-values. Use -p and -pretty in the
> example, as -r is ambiguous.
> (Print Settings): Document set print raw values.
> (Pretty-Printer Commands): Document interaction between enabled
> pretty printers and -raw-values/-raw-frame-arguments.
>
> gdb/ChangeLog
> 2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
>
> * NEWS: Document -raw-values option and the related setting commands.
> * printcmd.c (print_command_parse_format): Do not set opts->raw off,
> only set it on when /r is given.
> * valprint.c (value_print_option_defs): New element raw-values.
> * Makefile.in: Add the new file.
>
> 2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
>
> * gdb.base/options.exp: Add -raw-values in the print completion list.
> * gdb.python/py-prettyprint.exp: Add tests for -raw-values.
> ---
> gdb/NEWS | 11 ++++-
> gdb/doc/gdb.texinfo | 51 +++++++++++++++++----
> gdb/printcmd.c | 6 ++-
> gdb/testsuite/gdb.base/options.exp | 1 +
> gdb/testsuite/gdb.python/py-prettyprint.exp | 10 ++++
> gdb/valprint.c | 10 ++++
> 6 files changed, 75 insertions(+), 14 deletions(-)
>
> diff --git a/gdb/NEWS b/gdb/NEWS
> index fa01adf6e8..8f27b102ea 100644
> --- a/gdb/NEWS
> +++ b/gdb/NEWS
> @@ -101,6 +101,12 @@ show print max-depth
> The default max-depth is 20, but this can be set to unlimited to get
> the old behavior back.
>
> +set print raw-values [on|off]
> +show print raw-values
> + By default, GDB applies the enabled pretty printers when printing a
> + value. This allows to ignore the enabled pretty printers for a series
> + of commands. The default is 'off'.
> +
> set logging debugredirect [on|off]
> By default, GDB debug output will go to both the terminal and the logfile.
> Set if you want debug output to go only to the log file.
> @@ -200,6 +206,7 @@ maint show test-options-completion-result
> -null-stop [on|off]
> -object [on|off]
> -pretty [on|off]
> + -raw-values [on|off]
> -repeats NUMBER|unlimited
> -static-members [on|off]
> -symbol [on|off]
> @@ -244,11 +251,11 @@ maint show test-options-completion-result
> "on" if omitted. This allows writing compact command invocations,
> like for example:
>
> - (gdb) p -r -p -o 0 -- *myptr
> + (gdb) p -ra -p -o 0 -- *myptr
>
> The above is equivalent to:
>
> - (gdb) print -raw -pretty -object off -- *myptr
> + (gdb) print -raw-values -pretty -object off -- *myptr
>
> ** The "info types" command now supports the '-q' flag to disable
> printing of some header information in a similar fashion to "info
> diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
> index 7f8c0aff1c..f65f8b1764 100644
> --- a/gdb/doc/gdb.texinfo
> +++ b/gdb/doc/gdb.texinfo
> @@ -1936,8 +1936,8 @@ Some commands take raw input as argument. For example, the print
> command processes arbitrary expressions in any of the languages
> supported by @value{GDBN}. With such commands, because raw input may
> start with a leading dash that would be confused with an option or any
> -of its abbreviations, e.g.@: @code{print -r} (short for @code{print
> --raw} or printing negative @code{r}?), if you specify any command
> +of its abbreviations, e.g.@: @code{print -p} (short for @code{print
> +-pretty} or printing negative @code{p}?), if you specify any command
> option, then you must use a double-dash (@code{--}) delimiter to
> indicate the end of options.
>
> @@ -1963,10 +1963,10 @@ on @code{-} after the command name. For example:
>
> @smallexample
> (@value{GDBP}) print -@key{TAB}@key{TAB}
> --address -max-depth -repeats -vtbl
> --array -null-stop -static-members
> --array-indexes -object -symbol
> --elements -pretty -union
> +-address -max-depth -raw-values -union
> +-array -null-stop -repeats -vtbl
> +-array-indexes -object -static-members
> +-elements -pretty -symbol
> @end smallexample
>
> Completion will in some cases guide you with a suggestion of what kind
> @@ -9541,6 +9541,11 @@ Set printing C@t{++} virtual function tables. Related setting:
> Set pretty formatting of structures. Related setting: @ref{set print
> pretty}.
>
> +@item -raw-values [@code{on}|@code{off}]
> +Set whether to print values in raw form, bypassing any
> +pretty-printers for that value. Related setting: @ref{set print
> +raw-values}.
> +
> @item -repeats @var{number-of-repeats}|@code{unlimited}
> Set threshold for repeated print elements. @code{unlimited} causes
> all elements to be individually printed. Related setting: @ref{set
> @@ -9568,17 +9573,17 @@ may look like options (including abbreviations), if you specify any
> command option, then you must use a double dash (@code{--}) to mark
> the end of option processing.
>
> -For example, this prints the value of the @code{-r} expression:
> +For example, this prints the value of the @code{-p} expression:
>
> @smallexample
> -(@value{GDBP}) print -r
> +(@value{GDBP}) print -p
> @end smallexample
>
> While this repeats the last value in the value history (see below)
> -with the @code{-raw} option in effect:
> +with the @code{-pretty} option in effect:
>
> @smallexample
> -(@value{GDBP}) print -r --
> +(@value{GDBP}) print -p --
> @end smallexample
>
> Here is an example including both on option and an expression:
> @@ -11169,6 +11174,20 @@ This is the default format.
> @item show print pretty
> Show which format @value{GDBN} is using to print structures.
>
> +@anchor{set print raw-values}
> +@item set print raw-values on
> +Print values in raw form, without applying the pretty
> +printers for the value.
> +
> +@item set print raw-values off
> +Print values in pretty-printed form, if there is a pretty-printer
> +for the value (@pxref{Pretty Printing}),
> +otherwise print the value in raw form.
> +This is the default.
> +
> +@item show print raw-values
> +Show whether to print values in raw form.
> +
> @item set print sevenbit-strings on
> @cindex eight-bit characters in strings
> @cindex octal escapes in strings
> @@ -11508,6 +11527,18 @@ library2.so:
> Note that for @code{bar} the entire printer can be disabled,
> as can each individual subprinter.
>
> +Printing values and frame arguments is done by default using
> +the enabled pretty printers.
> +
> +The print option @code{-raw-values} and @value{GDBN} setting @xref{set
> +print raw-values} can be used to print values without applying the
> +enabled pretty printers.
> +
> +Similarly, the backtrace option @code{-raw-frame-arguments} and
> +@value{GDBN} setting @xref{set print raw-frame-arguments} can be used
> +to ignore the enabled pretty printers when printing frame argument
> +values
> +
> @node Value History
> @section Value History
>
> diff --git a/gdb/printcmd.c b/gdb/printcmd.c
> index 7529842e73..9c3982338a 100644
> --- a/gdb/printcmd.c
> +++ b/gdb/printcmd.c
> @@ -1142,6 +1142,9 @@ print_command_parse_format (const char **expp, const char *cmdname,
> {
> const char *exp = *expp;
>
> + /* opts->raw value might already have been set by 'set print raw-values'
> + or by using 'print -raw-values'.
> + So, do not set opts->raw to 0, only set it to 1 if /r is given. */
> if (exp && *exp == '/')
> {
> format_data fmt;
> @@ -1152,12 +1155,11 @@ print_command_parse_format (const char **expp, const char *cmdname,
> last_format = fmt.format;
>
> opts->format = fmt.format;
> - opts->raw = fmt.raw;
> + opts->raw = opts->raw || fmt.raw;
> }
> else
> {
> opts->format = 0;
> - opts->raw = 0;
> }
>
> *expp = exp;
> diff --git a/gdb/testsuite/gdb.base/options.exp b/gdb/testsuite/gdb.base/options.exp
> index 7a18fe936b..78ddc26577 100644
> --- a/gdb/testsuite/gdb.base/options.exp
> +++ b/gdb/testsuite/gdb.base/options.exp
> @@ -168,6 +168,7 @@ proc_with_prefix test-print {{prefix ""}} {
> "-null-stop"
> "-object"
> "-pretty"
> + "-raw-values"
> "-repeats"
> "-static-members"
> "-symbol"
> diff --git a/gdb/testsuite/gdb.python/py-prettyprint.exp b/gdb/testsuite/gdb.python/py-prettyprint.exp
> index 82e7e65031..3d88f7e9f2 100644
> --- a/gdb/testsuite/gdb.python/py-prettyprint.exp
> +++ b/gdb/testsuite/gdb.python/py-prettyprint.exp
> @@ -199,3 +199,13 @@ gdb_test_no_output "python enable_lookup_function ()"
>
> gdb_test "print ss" " = a=< a=<1> b=<$hex>> b=< a=<2> b=<$hex>>" \
> "print ss enabled #2"
> +
> +gdb_test "print -raw-values -- ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
> + "print -raw-values -- ss"
> +
> +gdb_test "print -raw-values on -- ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
> + "print -raw-values on -- ss"
> +
> +gdb_test "with print raw-values -- print ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
> + "with print raw-values -- print ss"
> +
> diff --git a/gdb/valprint.c b/gdb/valprint.c
> index e5b28f3ee9..96e8ff6dca 100644
> --- a/gdb/valprint.c
> +++ b/gdb/valprint.c
> @@ -3192,6 +3192,16 @@ Use \"unlimited\" to print the complete structure.")
> NULL, /* help_doc */
> },
>
> + boolean_option_def {
> + "raw-values",
> + [] (value_print_options *opt) { return &opt->raw; },
> + NULL, /* show_cmd_cb */
> + N_("Set whether to print values in raw form."),
> + N_("Show whether to print values in raw form."),
> + N_("If set, values are printed in raw form, bypassing any\n\
> +pretty-printers for that value.")
> + },
> +
> uinteger_option_def {
> "repeats",
> [] (value_print_options *opt) { return &opt->repeat_count_threshold; },
^ permalink raw reply [flat|nested] 15+ messages in thread
* PING^2 Re: [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
2019-08-07 19:39 [RFA] Implement 'print -raw-values' and 'set print raw-values on|off' Philippe Waroquiers
` (2 preceding siblings ...)
2019-09-07 11:42 ` PING " Philippe Waroquiers
@ 2019-09-29 15:29 ` Philippe Waroquiers
2019-09-29 15:33 ` Eli Zaretskii
2019-10-20 10:26 ` PING^3 " Philippe Waroquiers
2019-12-04 3:43 ` Simon Marchi
4 siblings, 2 replies; 15+ messages in thread
From: Philippe Waroquiers @ 2019-09-29 15:29 UTC (permalink / raw)
To: gdb-patches
Ping.
Thanks
Philippe
On Wed, 2019-08-07 at 21:39 +0200, Philippe Waroquiers wrote:
> The option framework documentation was speaking about a 'print -raw'
> option, but this option does not exist.
>
> This patch implements -raw-values option that tells to ignore the
> active pretty printers when printing a value.
> As we already have -raw-frame-arguments, I thought -raw-values
> was more clear, in particular to differentiate
> set print raw-values and set print raw-frame-arguments.
>
> gdb/doc/ChangeLog
> 2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
>
> * gdb.texinfo (Command Options): Use -p and -pretty in the example,
> as -r is ambiguous. Update the print - TAB TAB completion result.
> (Data): Document new option -raw-values. Use -p and -pretty in the
> example, as -r is ambiguous.
> (Print Settings): Document set print raw values.
> (Pretty-Printer Commands): Document interaction between enabled
> pretty printers and -raw-values/-raw-frame-arguments.
>
> gdb/ChangeLog
> 2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
>
> * NEWS: Document -raw-values option and the related setting commands.
> * printcmd.c (print_command_parse_format): Do not set opts->raw off,
> only set it on when /r is given.
> * valprint.c (value_print_option_defs): New element raw-values.
> * Makefile.in: Add the new file.
>
> 2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
>
> * gdb.base/options.exp: Add -raw-values in the print completion list.
> * gdb.python/py-prettyprint.exp: Add tests for -raw-values.
> ---
> gdb/NEWS | 11 ++++-
> gdb/doc/gdb.texinfo | 51 +++++++++++++++++----
> gdb/printcmd.c | 6 ++-
> gdb/testsuite/gdb.base/options.exp | 1 +
> gdb/testsuite/gdb.python/py-prettyprint.exp | 10 ++++
> gdb/valprint.c | 10 ++++
> 6 files changed, 75 insertions(+), 14 deletions(-)
>
> diff --git a/gdb/NEWS b/gdb/NEWS
> index fa01adf6e8..8f27b102ea 100644
> --- a/gdb/NEWS
> +++ b/gdb/NEWS
> @@ -101,6 +101,12 @@ show print max-depth
> The default max-depth is 20, but this can be set to unlimited to get
> the old behavior back.
>
> +set print raw-values [on|off]
> +show print raw-values
> + By default, GDB applies the enabled pretty printers when printing a
> + value. This allows to ignore the enabled pretty printers for a series
> + of commands. The default is 'off'.
> +
> set logging debugredirect [on|off]
> By default, GDB debug output will go to both the terminal and the logfile.
> Set if you want debug output to go only to the log file.
> @@ -200,6 +206,7 @@ maint show test-options-completion-result
> -null-stop [on|off]
> -object [on|off]
> -pretty [on|off]
> + -raw-values [on|off]
> -repeats NUMBER|unlimited
> -static-members [on|off]
> -symbol [on|off]
> @@ -244,11 +251,11 @@ maint show test-options-completion-result
> "on" if omitted. This allows writing compact command invocations,
> like for example:
>
> - (gdb) p -r -p -o 0 -- *myptr
> + (gdb) p -ra -p -o 0 -- *myptr
>
> The above is equivalent to:
>
> - (gdb) print -raw -pretty -object off -- *myptr
> + (gdb) print -raw-values -pretty -object off -- *myptr
>
> ** The "info types" command now supports the '-q' flag to disable
> printing of some header information in a similar fashion to "info
> diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
> index 7f8c0aff1c..f65f8b1764 100644
> --- a/gdb/doc/gdb.texinfo
> +++ b/gdb/doc/gdb.texinfo
> @@ -1936,8 +1936,8 @@ Some commands take raw input as argument. For example, the print
> command processes arbitrary expressions in any of the languages
> supported by @value{GDBN}. With such commands, because raw input may
> start with a leading dash that would be confused with an option or any
> -of its abbreviations, e.g.@: @code{print -r} (short for @code{print
> --raw} or printing negative @code{r}?), if you specify any command
> +of its abbreviations, e.g.@: @code{print -p} (short for @code{print
> +-pretty} or printing negative @code{p}?), if you specify any command
> option, then you must use a double-dash (@code{--}) delimiter to
> indicate the end of options.
>
> @@ -1963,10 +1963,10 @@ on @code{-} after the command name. For example:
>
> @smallexample
> (@value{GDBP}) print -@key{TAB}@key{TAB}
> --address -max-depth -repeats -vtbl
> --array -null-stop -static-members
> --array-indexes -object -symbol
> --elements -pretty -union
> +-address -max-depth -raw-values -union
> +-array -null-stop -repeats -vtbl
> +-array-indexes -object -static-members
> +-elements -pretty -symbol
> @end smallexample
>
> Completion will in some cases guide you with a suggestion of what kind
> @@ -9541,6 +9541,11 @@ Set printing C@t{++} virtual function tables. Related setting:
> Set pretty formatting of structures. Related setting: @ref{set print
> pretty}.
>
> +@item -raw-values [@code{on}|@code{off}]
> +Set whether to print values in raw form, bypassing any
> +pretty-printers for that value. Related setting: @ref{set print
> +raw-values}.
> +
> @item -repeats @var{number-of-repeats}|@code{unlimited}
> Set threshold for repeated print elements. @code{unlimited} causes
> all elements to be individually printed. Related setting: @ref{set
> @@ -9568,17 +9573,17 @@ may look like options (including abbreviations), if you specify any
> command option, then you must use a double dash (@code{--}) to mark
> the end of option processing.
>
> -For example, this prints the value of the @code{-r} expression:
> +For example, this prints the value of the @code{-p} expression:
>
> @smallexample
> -(@value{GDBP}) print -r
> +(@value{GDBP}) print -p
> @end smallexample
>
> While this repeats the last value in the value history (see below)
> -with the @code{-raw} option in effect:
> +with the @code{-pretty} option in effect:
>
> @smallexample
> -(@value{GDBP}) print -r --
> +(@value{GDBP}) print -p --
> @end smallexample
>
> Here is an example including both on option and an expression:
> @@ -11169,6 +11174,20 @@ This is the default format.
> @item show print pretty
> Show which format @value{GDBN} is using to print structures.
>
> +@anchor{set print raw-values}
> +@item set print raw-values on
> +Print values in raw form, without applying the pretty
> +printers for the value.
> +
> +@item set print raw-values off
> +Print values in pretty-printed form, if there is a pretty-printer
> +for the value (@pxref{Pretty Printing}),
> +otherwise print the value in raw form.
> +This is the default.
> +
> +@item show print raw-values
> +Show whether to print values in raw form.
> +
> @item set print sevenbit-strings on
> @cindex eight-bit characters in strings
> @cindex octal escapes in strings
> @@ -11508,6 +11527,18 @@ library2.so:
> Note that for @code{bar} the entire printer can be disabled,
> as can each individual subprinter.
>
> +Printing values and frame arguments is done by default using
> +the enabled pretty printers.
> +
> +The print option @code{-raw-values} and @value{GDBN} setting @xref{set
> +print raw-values} can be used to print values without applying the
> +enabled pretty printers.
> +
> +Similarly, the backtrace option @code{-raw-frame-arguments} and
> +@value{GDBN} setting @xref{set print raw-frame-arguments} can be used
> +to ignore the enabled pretty printers when printing frame argument
> +values
> +
> @node Value History
> @section Value History
>
> diff --git a/gdb/printcmd.c b/gdb/printcmd.c
> index 7529842e73..9c3982338a 100644
> --- a/gdb/printcmd.c
> +++ b/gdb/printcmd.c
> @@ -1142,6 +1142,9 @@ print_command_parse_format (const char **expp, const char *cmdname,
> {
> const char *exp = *expp;
>
> + /* opts->raw value might already have been set by 'set print raw-values'
> + or by using 'print -raw-values'.
> + So, do not set opts->raw to 0, only set it to 1 if /r is given. */
> if (exp && *exp == '/')
> {
> format_data fmt;
> @@ -1152,12 +1155,11 @@ print_command_parse_format (const char **expp, const char *cmdname,
> last_format = fmt.format;
>
> opts->format = fmt.format;
> - opts->raw = fmt.raw;
> + opts->raw = opts->raw || fmt.raw;
> }
> else
> {
> opts->format = 0;
> - opts->raw = 0;
> }
>
> *expp = exp;
> diff --git a/gdb/testsuite/gdb.base/options.exp b/gdb/testsuite/gdb.base/options.exp
> index 7a18fe936b..78ddc26577 100644
> --- a/gdb/testsuite/gdb.base/options.exp
> +++ b/gdb/testsuite/gdb.base/options.exp
> @@ -168,6 +168,7 @@ proc_with_prefix test-print {{prefix ""}} {
> "-null-stop"
> "-object"
> "-pretty"
> + "-raw-values"
> "-repeats"
> "-static-members"
> "-symbol"
> diff --git a/gdb/testsuite/gdb.python/py-prettyprint.exp b/gdb/testsuite/gdb.python/py-prettyprint.exp
> index 82e7e65031..3d88f7e9f2 100644
> --- a/gdb/testsuite/gdb.python/py-prettyprint.exp
> +++ b/gdb/testsuite/gdb.python/py-prettyprint.exp
> @@ -199,3 +199,13 @@ gdb_test_no_output "python enable_lookup_function ()"
>
> gdb_test "print ss" " = a=< a=<1> b=<$hex>> b=< a=<2> b=<$hex>>" \
> "print ss enabled #2"
> +
> +gdb_test "print -raw-values -- ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
> + "print -raw-values -- ss"
> +
> +gdb_test "print -raw-values on -- ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
> + "print -raw-values on -- ss"
> +
> +gdb_test "with print raw-values -- print ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
> + "with print raw-values -- print ss"
> +
> diff --git a/gdb/valprint.c b/gdb/valprint.c
> index e5b28f3ee9..96e8ff6dca 100644
> --- a/gdb/valprint.c
> +++ b/gdb/valprint.c
> @@ -3192,6 +3192,16 @@ Use \"unlimited\" to print the complete structure.")
> NULL, /* help_doc */
> },
>
> + boolean_option_def {
> + "raw-values",
> + [] (value_print_options *opt) { return &opt->raw; },
> + NULL, /* show_cmd_cb */
> + N_("Set whether to print values in raw form."),
> + N_("Show whether to print values in raw form."),
> + N_("If set, values are printed in raw form, bypassing any\n\
> +pretty-printers for that value.")
> + },
> +
> uinteger_option_def {
> "repeats",
> [] (value_print_options *opt) { return &opt->repeat_count_threshold; },
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: PING^2 Re: [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
2019-09-29 15:29 ` PING^2 " Philippe Waroquiers
@ 2019-09-29 15:33 ` Eli Zaretskii
2019-09-29 15:49 ` Philippe Waroquiers
2019-10-20 10:26 ` PING^3 " Philippe Waroquiers
1 sibling, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2019-09-29 15:33 UTC (permalink / raw)
To: Philippe Waroquiers; +Cc: gdb-patches
> From: Philippe Waroquiers <philippe.waroquiers@skynet.be>
> Date: Sun, 29 Sep 2019 17:29:54 +0200
>
> Ping.
I believe the documentation parts were already reviewed, right?
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: PING^2 Re: [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
2019-09-29 15:33 ` Eli Zaretskii
@ 2019-09-29 15:49 ` Philippe Waroquiers
0 siblings, 0 replies; 15+ messages in thread
From: Philippe Waroquiers @ 2019-09-29 15:49 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: gdb-patches
On Sun, 2019-09-29 at 18:33 +0300, Eli Zaretskii wrote:
> > From: Philippe Waroquiers <philippe.waroquiers@skynet.be>
> > Date: Sun, 29 Sep 2019 17:29:54 +0200
> >
> > Ping.
>
> I believe the documentation parts were already reviewed, right?
Yes (see https://sourceware.org/ml/gdb-patches/2019-08/msg00207.html).
I have applied all the proposed changes.
Thanks
Philippe
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: PING^3 Re: [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
2019-09-29 15:29 ` PING^2 " Philippe Waroquiers
2019-09-29 15:33 ` Eli Zaretskii
@ 2019-10-20 10:26 ` Philippe Waroquiers
2019-12-04 16:18 ` Pedro Alves
1 sibling, 1 reply; 15+ messages in thread
From: Philippe Waroquiers @ 2019-10-20 10:26 UTC (permalink / raw)
To: gdb-patches
[-- Attachment #1: Type: text/plain, Size: 11288 bytes --]
Ping ?
Attaching a patch rebased on recent master.
Thanks
Philipe
On Sun, 2019-09-29 at 17:29 +0200, Philippe Waroquiers wrote:
> Ping.
> Thanks
> Philippe
>
> On Wed, 2019-08-07 at 21:39 +0200, Philippe Waroquiers wrote:
> > The option framework documentation was speaking about a 'print -raw'
> > option, but this option does not exist.
> >
> > This patch implements -raw-values option that tells to ignore the
> > active pretty printers when printing a value.
> > As we already have -raw-frame-arguments, I thought -raw-values
> > was more clear, in particular to differentiate
> > set print raw-values and set print raw-frame-arguments.
> >
> > gdb/doc/ChangeLog
> > 2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
> >
> > * gdb.texinfo (Command Options): Use -p and -pretty in the example,
> > as -r is ambiguous. Update the print - TAB TAB completion result.
> > (Data): Document new option -raw-values. Use -p and -pretty in the
> > example, as -r is ambiguous.
> > (Print Settings): Document set print raw values.
> > (Pretty-Printer Commands): Document interaction between enabled
> > pretty printers and -raw-values/-raw-frame-arguments.
> >
> > gdb/ChangeLog
> > 2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
> >
> > * NEWS: Document -raw-values option and the related setting commands.
> > * printcmd.c (print_command_parse_format): Do not set opts->raw off,
> > only set it on when /r is given.
> > * valprint.c (value_print_option_defs): New element raw-values.
> > * Makefile.in: Add the new file.
> >
> > 2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
> >
> > * gdb.base/options.exp: Add -raw-values in the print completion list.
> > * gdb.python/py-prettyprint.exp: Add tests for -raw-values.
> > ---
> > gdb/NEWS | 11 ++++-
> > gdb/doc/gdb.texinfo | 51 +++++++++++++++++----
> > gdb/printcmd.c | 6 ++-
> > gdb/testsuite/gdb.base/options.exp | 1 +
> > gdb/testsuite/gdb.python/py-prettyprint.exp | 10 ++++
> > gdb/valprint.c | 10 ++++
> > 6 files changed, 75 insertions(+), 14 deletions(-)
> >
> > diff --git a/gdb/NEWS b/gdb/NEWS
> > index fa01adf6e8..8f27b102ea 100644
> > --- a/gdb/NEWS
> > +++ b/gdb/NEWS
> > @@ -101,6 +101,12 @@ show print max-depth
> > The default max-depth is 20, but this can be set to unlimited to get
> > the old behavior back.
> >
> > +set print raw-values [on|off]
> > +show print raw-values
> > + By default, GDB applies the enabled pretty printers when printing a
> > + value. This allows to ignore the enabled pretty printers for a series
> > + of commands. The default is 'off'.
> > +
> > set logging debugredirect [on|off]
> > By default, GDB debug output will go to both the terminal and the logfile.
> > Set if you want debug output to go only to the log file.
> > @@ -200,6 +206,7 @@ maint show test-options-completion-result
> > -null-stop [on|off]
> > -object [on|off]
> > -pretty [on|off]
> > + -raw-values [on|off]
> > -repeats NUMBER|unlimited
> > -static-members [on|off]
> > -symbol [on|off]
> > @@ -244,11 +251,11 @@ maint show test-options-completion-result
> > "on" if omitted. This allows writing compact command invocations,
> > like for example:
> >
> > - (gdb) p -r -p -o 0 -- *myptr
> > + (gdb) p -ra -p -o 0 -- *myptr
> >
> > The above is equivalent to:
> >
> > - (gdb) print -raw -pretty -object off -- *myptr
> > + (gdb) print -raw-values -pretty -object off -- *myptr
> >
> > ** The "info types" command now supports the '-q' flag to disable
> > printing of some header information in a similar fashion to "info
> > diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
> > index 7f8c0aff1c..f65f8b1764 100644
> > --- a/gdb/doc/gdb.texinfo
> > +++ b/gdb/doc/gdb.texinfo
> > @@ -1936,8 +1936,8 @@ Some commands take raw input as argument. For example, the print
> > command processes arbitrary expressions in any of the languages
> > supported by @value{GDBN}. With such commands, because raw input may
> > start with a leading dash that would be confused with an option or any
> > -of its abbreviations, e.g.@: @code{print -r} (short for @code{print
> > --raw} or printing negative @code{r}?), if you specify any command
> > +of its abbreviations, e.g.@: @code{print -p} (short for @code{print
> > +-pretty} or printing negative @code{p}?), if you specify any command
> > option, then you must use a double-dash (@code{--}) delimiter to
> > indicate the end of options.
> >
> > @@ -1963,10 +1963,10 @@ on @code{-} after the command name. For example:
> >
> > @smallexample
> > (@value{GDBP}) print -@key{TAB}@key{TAB}
> > --address -max-depth -repeats -vtbl
> > --array -null-stop -static-members
> > --array-indexes -object -symbol
> > --elements -pretty -union
> > +-address -max-depth -raw-values -union
> > +-array -null-stop -repeats -vtbl
> > +-array-indexes -object -static-members
> > +-elements -pretty -symbol
> > @end smallexample
> >
> > Completion will in some cases guide you with a suggestion of what kind
> > @@ -9541,6 +9541,11 @@ Set printing C@t{++} virtual function tables. Related setting:
> > Set pretty formatting of structures. Related setting: @ref{set print
> > pretty}.
> >
> > +@item -raw-values [@code{on}|@code{off}]
> > +Set whether to print values in raw form, bypassing any
> > +pretty-printers for that value. Related setting: @ref{set print
> > +raw-values}.
> > +
> > @item -repeats @var{number-of-repeats}|@code{unlimited}
> > Set threshold for repeated print elements. @code{unlimited} causes
> > all elements to be individually printed. Related setting: @ref{set
> > @@ -9568,17 +9573,17 @@ may look like options (including abbreviations), if you specify any
> > command option, then you must use a double dash (@code{--}) to mark
> > the end of option processing.
> >
> > -For example, this prints the value of the @code{-r} expression:
> > +For example, this prints the value of the @code{-p} expression:
> >
> > @smallexample
> > -(@value{GDBP}) print -r
> > +(@value{GDBP}) print -p
> > @end smallexample
> >
> > While this repeats the last value in the value history (see below)
> > -with the @code{-raw} option in effect:
> > +with the @code{-pretty} option in effect:
> >
> > @smallexample
> > -(@value{GDBP}) print -r --
> > +(@value{GDBP}) print -p --
> > @end smallexample
> >
> > Here is an example including both on option and an expression:
> > @@ -11169,6 +11174,20 @@ This is the default format.
> > @item show print pretty
> > Show which format @value{GDBN} is using to print structures.
> >
> > +@anchor{set print raw-values}
> > +@item set print raw-values on
> > +Print values in raw form, without applying the pretty
> > +printers for the value.
> > +
> > +@item set print raw-values off
> > +Print values in pretty-printed form, if there is a pretty-printer
> > +for the value (@pxref{Pretty Printing}),
> > +otherwise print the value in raw form.
> > +This is the default.
> > +
> > +@item show print raw-values
> > +Show whether to print values in raw form.
> > +
> > @item set print sevenbit-strings on
> > @cindex eight-bit characters in strings
> > @cindex octal escapes in strings
> > @@ -11508,6 +11527,18 @@ library2.so:
> > Note that for @code{bar} the entire printer can be disabled,
> > as can each individual subprinter.
> >
> > +Printing values and frame arguments is done by default using
> > +the enabled pretty printers.
> > +
> > +The print option @code{-raw-values} and @value{GDBN} setting @xref{set
> > +print raw-values} can be used to print values without applying the
> > +enabled pretty printers.
> > +
> > +Similarly, the backtrace option @code{-raw-frame-arguments} and
> > +@value{GDBN} setting @xref{set print raw-frame-arguments} can be used
> > +to ignore the enabled pretty printers when printing frame argument
> > +values
> > +
> > @node Value History
> > @section Value History
> >
> > diff --git a/gdb/printcmd.c b/gdb/printcmd.c
> > index 7529842e73..9c3982338a 100644
> > --- a/gdb/printcmd.c
> > +++ b/gdb/printcmd.c
> > @@ -1142,6 +1142,9 @@ print_command_parse_format (const char **expp, const char *cmdname,
> > {
> > const char *exp = *expp;
> >
> > + /* opts->raw value might already have been set by 'set print raw-values'
> > + or by using 'print -raw-values'.
> > + So, do not set opts->raw to 0, only set it to 1 if /r is given. */
> > if (exp && *exp == '/')
> > {
> > format_data fmt;
> > @@ -1152,12 +1155,11 @@ print_command_parse_format (const char **expp, const char *cmdname,
> > last_format = fmt.format;
> >
> > opts->format = fmt.format;
> > - opts->raw = fmt.raw;
> > + opts->raw = opts->raw || fmt.raw;
> > }
> > else
> > {
> > opts->format = 0;
> > - opts->raw = 0;
> > }
> >
> > *expp = exp;
> > diff --git a/gdb/testsuite/gdb.base/options.exp b/gdb/testsuite/gdb.base/options.exp
> > index 7a18fe936b..78ddc26577 100644
> > --- a/gdb/testsuite/gdb.base/options.exp
> > +++ b/gdb/testsuite/gdb.base/options.exp
> > @@ -168,6 +168,7 @@ proc_with_prefix test-print {{prefix ""}} {
> > "-null-stop"
> > "-object"
> > "-pretty"
> > + "-raw-values"
> > "-repeats"
> > "-static-members"
> > "-symbol"
> > diff --git a/gdb/testsuite/gdb.python/py-prettyprint.exp b/gdb/testsuite/gdb.python/py-prettyprint.exp
> > index 82e7e65031..3d88f7e9f2 100644
> > --- a/gdb/testsuite/gdb.python/py-prettyprint.exp
> > +++ b/gdb/testsuite/gdb.python/py-prettyprint.exp
> > @@ -199,3 +199,13 @@ gdb_test_no_output "python enable_lookup_function ()"
> >
> > gdb_test "print ss" " = a=< a=<1> b=<$hex>> b=< a=<2> b=<$hex>>" \
> > "print ss enabled #2"
> > +
> > +gdb_test "print -raw-values -- ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
> > + "print -raw-values -- ss"
> > +
> > +gdb_test "print -raw-values on -- ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
> > + "print -raw-values on -- ss"
> > +
> > +gdb_test "with print raw-values -- print ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
> > + "with print raw-values -- print ss"
> > +
> > diff --git a/gdb/valprint.c b/gdb/valprint.c
> > index e5b28f3ee9..96e8ff6dca 100644
> > --- a/gdb/valprint.c
> > +++ b/gdb/valprint.c
> > @@ -3192,6 +3192,16 @@ Use \"unlimited\" to print the complete structure.")
> > NULL, /* help_doc */
> > },
> >
> > + boolean_option_def {
> > + "raw-values",
> > + [] (value_print_options *opt) { return &opt->raw; },
> > + NULL, /* show_cmd_cb */
> > + N_("Set whether to print values in raw form."),
> > + N_("Show whether to print values in raw form."),
> > + N_("If set, values are printed in raw form, bypassing any\n\
> > +pretty-printers for that value.")
> > + },
> > +
> > uinteger_option_def {
> > "repeats",
> > [] (value_print_options *opt) { return &opt->repeat_count_threshold; },
[-- Attachment #2: patch_ping.txt --]
[-- Type: text/plain, Size: 10328 bytes --]
From c4ba2766ddab5e3f46d2781d987402313516e0b5 Mon Sep 17 00:00:00 2001
From: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Date: Wed, 7 Aug 2019 20:50:54 +0200
Subject: [PATCH] Implement 'print -raw-values' and 'set print raw-values
on|off'
The option framework documentation was speaking about a 'print -raw'
option, but this option does not exist.
This patch implements -raw-values option that tells to ignore the
active pretty printers when printing a value.
As we already have -raw-frame-arguments, I thought -raw-values
was more clear, in particular to differentiate
set print raw-values and set print raw-frame-arguments.
gdb/doc/ChangeLog
2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.texinfo (Command Options): Use -p and -pretty in the example,
as -r is ambiguous. Update the print - TAB TAB completion result.
(Data): Document new option -raw-values. Use -p and -pretty in the
example, as -r is ambiguous.
(Print Settings): Document set print raw values.
(Pretty-Printer Commands): Document interaction between enabled
pretty printers and -raw-values/-raw-frame-arguments.
gdb/ChangeLog
2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* NEWS: Document -raw-values option and the related setting commands.
* printcmd.c (print_command_parse_format): Do not set opts->raw off,
only set it on when /r is given.
* valprint.c (value_print_option_defs): New element raw-values.
* Makefile.in: Add the new file.
2019-08-07 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.base/options.exp: Add -raw-values in the print completion list.
* gdb.python/py-prettyprint.exp: Add tests for -raw-values.
---
gdb/NEWS | 11 ++++-
gdb/doc/gdb.texinfo | 52 +++++++++++++++++----
gdb/printcmd.c | 6 ++-
gdb/testsuite/gdb.base/options.exp | 1 +
gdb/testsuite/gdb.python/py-prettyprint.exp | 10 ++++
gdb/valprint.c | 10 ++++
6 files changed, 76 insertions(+), 14 deletions(-)
diff --git a/gdb/NEWS b/gdb/NEWS
index 25e67e43c8..1ce174d1b9 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -120,6 +120,12 @@ show print max-depth
The default max-depth is 20, but this can be set to unlimited to get
the old behavior back.
+set print raw-values [on|off]
+show print raw-values
+ By default, GDB applies the enabled pretty printers when printing a
+ value. This allows to ignore the enabled pretty printers for a series
+ of commands. The default is 'off'.
+
set logging debugredirect [on|off]
By default, GDB debug output will go to both the terminal and the logfile.
Set if you want debug output to go only to the log file.
@@ -222,6 +228,7 @@ focus, winheight, +, -, >, <
-null-stop [on|off]
-object [on|off]
-pretty [on|off]
+ -raw-values [on|off]
-repeats NUMBER|unlimited
-static-members [on|off]
-symbol [on|off]
@@ -266,11 +273,11 @@ focus, winheight, +, -, >, <
"on" if omitted. This allows writing compact command invocations,
like for example:
- (gdb) p -r -p -o 0 -- *myptr
+ (gdb) p -ra -p -o 0 -- *myptr
The above is equivalent to:
- (gdb) print -raw -pretty -object off -- *myptr
+ (gdb) print -raw-values -pretty -object off -- *myptr
** The "info types" command now supports the '-q' flag to disable
printing of some header information in a similar fashion to "info
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 1208e4f615..7749f90d96 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -1936,8 +1936,8 @@ Some commands take raw input as argument. For example, the print
command processes arbitrary expressions in any of the languages
supported by @value{GDBN}. With such commands, because raw input may
start with a leading dash that would be confused with an option or any
-of its abbreviations, e.g.@: @code{print -r} (short for @code{print
--raw} or printing negative @code{r}?), if you specify any command
+of its abbreviations, e.g.@: @code{print -p} (short for @code{print
+-pretty} or printing negative @code{p}?), if you specify any command
option, then you must use a double-dash (@code{--}) delimiter to
indicate the end of options.
@@ -1963,10 +1963,10 @@ on @code{-} after the command name. For example:
@smallexample
(@value{GDBP}) print -@key{TAB}@key{TAB}
--address -max-depth -repeats -vtbl
--array -null-stop -static-members
--array-indexes -object -symbol
--elements -pretty -union
+-address -max-depth -raw-values -union
+-array -null-stop -repeats -vtbl
+-array-indexes -object -static-members
+-elements -pretty -symbol
@end smallexample
Completion will in some cases guide you with a suggestion of what kind
@@ -9633,6 +9633,11 @@ Set printing C@t{++} virtual function tables. Related setting:
Set pretty formatting of structures. Related setting: @ref{set print
pretty}.
+@item -raw-values [@code{on}|@code{off}]
+Set whether to print values in raw form, bypassing any
+pretty-printers for that value. Related setting: @ref{set print
+raw-values}.
+
@item -repeats @var{number-of-repeats}|@code{unlimited}
Set threshold for repeated print elements. @code{unlimited} causes
all elements to be individually printed. Related setting: @ref{set
@@ -9660,17 +9665,17 @@ may look like options (including abbreviations), if you specify any
command option, then you must use a double dash (@code{--}) to mark
the end of option processing.
-For example, this prints the value of the @code{-r} expression:
+For example, this prints the value of the @code{-p} expression:
@smallexample
-(@value{GDBP}) print -r
+(@value{GDBP}) print -p
@end smallexample
While this repeats the last value in the value history (see below)
-with the @code{-raw} option in effect:
+with the @code{-pretty} option in effect:
@smallexample
-(@value{GDBP}) print -r --
+(@value{GDBP}) print -p --
@end smallexample
Here is an example including both on option and an expression:
@@ -11261,6 +11266,21 @@ This is the default format.
@item show print pretty
Show which format @value{GDBN} is using to print structures.
+@anchor{set print raw-values}
+@item set print raw-values on
+Print values in raw form, without applying the pretty
+printers for the value.
+
+@item set print raw-values off
+Print values in pretty-printed form, if there is a pretty-printer
+for the value (@pxref{Pretty Printing}),
+otherwise print the value in raw form.
+
+The default setting is ``off''.
+
+@item show print raw-values
+Show whether to print values in raw form.
+
@item set print sevenbit-strings on
@cindex eight-bit characters in strings
@cindex octal escapes in strings
@@ -11600,6 +11620,18 @@ library2.so:
Note that for @code{bar} the entire printer can be disabled,
as can each individual subprinter.
+Printing values and frame arguments is done by default using
+the enabled pretty printers.
+
+The print option @code{-raw-values} and @value{GDBN} setting
+@code{set print raw-values} (@pxref{set print raw-values}) can be
+used to print values without applying the enabled pretty printers.
+
+Similarly, the backtrace option @code{-raw-frame-arguments} and
+@value{GDBN} setting @code{set print raw-frame-arguments}
+(@pxref{set print raw-frame-arguments}) can be used to ignore the
+enabled pretty printers when printing frame argument values.
+
@node Value History
@section Value History
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 27aaf7a076..bb6dca2594 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -1152,6 +1152,9 @@ print_command_parse_format (const char **expp, const char *cmdname,
{
const char *exp = *expp;
+ /* opts->raw value might already have been set by 'set print raw-values'
+ or by using 'print -raw-values'.
+ So, do not set opts->raw to 0, only set it to 1 if /r is given. */
if (exp && *exp == '/')
{
format_data fmt;
@@ -1162,12 +1165,11 @@ print_command_parse_format (const char **expp, const char *cmdname,
last_format = fmt.format;
opts->format = fmt.format;
- opts->raw = fmt.raw;
+ opts->raw = opts->raw || fmt.raw;
}
else
{
opts->format = 0;
- opts->raw = 0;
}
*expp = exp;
diff --git a/gdb/testsuite/gdb.base/options.exp b/gdb/testsuite/gdb.base/options.exp
index 7a18fe936b..78ddc26577 100644
--- a/gdb/testsuite/gdb.base/options.exp
+++ b/gdb/testsuite/gdb.base/options.exp
@@ -168,6 +168,7 @@ proc_with_prefix test-print {{prefix ""}} {
"-null-stop"
"-object"
"-pretty"
+ "-raw-values"
"-repeats"
"-static-members"
"-symbol"
diff --git a/gdb/testsuite/gdb.python/py-prettyprint.exp b/gdb/testsuite/gdb.python/py-prettyprint.exp
index 82e7e65031..3d88f7e9f2 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint.exp
+++ b/gdb/testsuite/gdb.python/py-prettyprint.exp
@@ -199,3 +199,13 @@ gdb_test_no_output "python enable_lookup_function ()"
gdb_test "print ss" " = a=< a=<1> b=<$hex>> b=< a=<2> b=<$hex>>" \
"print ss enabled #2"
+
+gdb_test "print -raw-values -- ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
+ "print -raw-values -- ss"
+
+gdb_test "print -raw-values on -- ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
+ "print -raw-values on -- ss"
+
+gdb_test "with print raw-values -- print ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
+ "with print raw-values -- print ss"
+
diff --git a/gdb/valprint.c b/gdb/valprint.c
index 5616db12ef..794fae88e6 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -3198,6 +3198,16 @@ Use \"unlimited\" to print the complete structure.")
NULL, /* help_doc */
},
+ boolean_option_def {
+ "raw-values",
+ [] (value_print_options *opt) { return &opt->raw; },
+ NULL, /* show_cmd_cb */
+ N_("Set whether to print values in raw form."),
+ N_("Show whether to print values in raw form."),
+ N_("If set, values are printed in raw form, bypassing any\n\
+pretty-printers for that value.")
+ },
+
uinteger_option_def {
"repeats",
[] (value_print_options *opt) { return &opt->repeat_count_threshold; },
--
2.20.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
2019-08-07 19:39 [RFA] Implement 'print -raw-values' and 'set print raw-values on|off' Philippe Waroquiers
` (3 preceding siblings ...)
2019-09-29 15:29 ` PING^2 " Philippe Waroquiers
@ 2019-12-04 3:43 ` Simon Marchi
2019-12-04 16:24 ` Pedro Alves
4 siblings, 1 reply; 15+ messages in thread
From: Simon Marchi @ 2019-12-04 3:43 UTC (permalink / raw)
To: Philippe Waroquiers, gdb-patches
On 2019-08-07 3:39 p.m., Philippe Waroquiers wrote:
> The option framework documentation was speaking about a 'print -raw'
> option, but this option does not exist.
>
> This patch implements -raw-values option that tells to ignore the
> active pretty printers when printing a value.
> As we already have -raw-frame-arguments, I thought -raw-values
> was more clear, in particular to differentiate
> set print raw-values and set print raw-frame-arguments.
Hi Philippe,
I'm just a bit worried about the naming, but I don't have anything better
to suggest. I mention it in case you do. The "set print raw-values" sounds
like superset of "set print raw-frame-arguments", because in my mind frame
arguments are printed as values.
Other than that, the patch looks fine to me.
Simon
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: PING^3 Re: [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
2019-10-20 10:26 ` PING^3 " Philippe Waroquiers
@ 2019-12-04 16:18 ` Pedro Alves
0 siblings, 0 replies; 15+ messages in thread
From: Pedro Alves @ 2019-12-04 16:18 UTC (permalink / raw)
To: Philippe Waroquiers, gdb-patches
On 10/20/19 11:26 AM, Philippe Waroquiers wrote:
> --- a/gdb/printcmd.c
> +++ b/gdb/printcmd.c
> @@ -1152,6 +1152,9 @@ print_command_parse_format (const char **expp, const char *cmdname,
> {
> const char *exp = *expp;
>
> + /* opts->raw value might already have been set by 'set print raw-values'
> + or by using 'print -raw-values'.
> + So, do not set opts->raw to 0, only set it to 1 if /r is given. */
> if (exp && *exp == '/')
Given this ...
> diff --git a/gdb/testsuite/gdb.python/py-prettyprint.exp b/gdb/testsuite/gdb.python/py-prettyprint.exp
> index 82e7e65031..3d88f7e9f2 100644
> --- a/gdb/testsuite/gdb.python/py-prettyprint.exp
> +++ b/gdb/testsuite/gdb.python/py-prettyprint.exp
> @@ -199,3 +199,13 @@ gdb_test_no_output "python enable_lookup_function ()"
>
> gdb_test "print ss" " = a=< a=<1> b=<$hex>> b=< a=<2> b=<$hex>>" \
> "print ss enabled #2"
> +
> +gdb_test "print -raw-values -- ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
> + "print -raw-values -- ss"
> +
> +gdb_test "print -raw-values on -- ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
> + "print -raw-values on -- ss"
> +
... could you add some tests combining /r and -raw-values, to show & exercise
what the comment above means?
Thanks,
Pedro Alves
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
2019-12-04 3:43 ` Simon Marchi
@ 2019-12-04 16:24 ` Pedro Alves
2019-12-04 16:34 ` Simon Marchi
0 siblings, 1 reply; 15+ messages in thread
From: Pedro Alves @ 2019-12-04 16:24 UTC (permalink / raw)
To: Simon Marchi, Philippe Waroquiers, gdb-patches
On 12/4/19 3:43 AM, Simon Marchi wrote:
> On 2019-08-07 3:39 p.m., Philippe Waroquiers wrote:
>> The option framework documentation was speaking about a 'print -raw'
>> option, but this option does not exist.
Eh. I think I recall that it would be a good idea to have it,
like I made "bt -full/-no-filters/-hide" options to
supersede "bt full/no-filters/hide", but then dropped it for some
reason.
So +1 from me.
(But see the other email I sent.)
>>
>> This patch implements -raw-values option that tells to ignore the
>> active pretty printers when printing a value.
>> As we already have -raw-frame-arguments, I thought -raw-values
>> was more clear, in particular to differentiate
>> set print raw-values and set print raw-frame-arguments.
>
> Hi Philippe,
>
> I'm just a bit worried about the naming, but I don't have anything better
> to suggest. I mention it in case you do. The "set print raw-values" sounds
> like superset of "set print raw-frame-arguments", because in my mind frame
> arguments are printed as values.
But isn't it a superset?
> Other than that, the patch looks fine to me.
Thanks,
Pedro Alves
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
2019-12-04 16:24 ` Pedro Alves
@ 2019-12-04 16:34 ` Simon Marchi
2019-12-04 17:19 ` Pedro Alves
0 siblings, 1 reply; 15+ messages in thread
From: Simon Marchi @ 2019-12-04 16:34 UTC (permalink / raw)
To: Pedro Alves, Philippe Waroquiers, gdb-patches
On 2019-12-04 11:24 a.m., Pedro Alves wrote:
> On 12/4/19 3:43 AM, Simon Marchi wrote:
>> On 2019-08-07 3:39 p.m., Philippe Waroquiers wrote:
>>> The option framework documentation was speaking about a 'print -raw'
>>> option, but this option does not exist.
>
> Eh. I think I recall that it would be a good idea to have it,
> like I made "bt -full/-no-filters/-hide" options to
> supersede "bt full/no-filters/hide", but then dropped it for some
> reason.
>
> So +1 from me.
>
> (But see the other email I sent.)
>
>>>
>>> This patch implements -raw-values option that tells to ignore the
>>> active pretty printers when printing a value.
>>> As we already have -raw-frame-arguments, I thought -raw-values
>>> was more clear, in particular to differentiate
>>> set print raw-values and set print raw-frame-arguments.
>>
>> Hi Philippe,
>>
>> I'm just a bit worried about the naming, but I don't have anything better
>> to suggest. I mention it in case you do. The "set print raw-values" sounds
>> like superset of "set print raw-frame-arguments", because in my mind frame
>> arguments are printed as values.
>
> But isn't it a superset?
From my testing, "set print raw-values on/off" didn't affect how parameter values
were printed in "bt" or "frame". But I might have tested it wrong.
Simon
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
2019-12-04 16:34 ` Simon Marchi
@ 2019-12-04 17:19 ` Pedro Alves
2019-12-07 14:01 ` Philippe Waroquiers
0 siblings, 1 reply; 15+ messages in thread
From: Pedro Alves @ 2019-12-04 17:19 UTC (permalink / raw)
To: Simon Marchi, Philippe Waroquiers, gdb-patches
On 12/4/19 4:34 PM, Simon Marchi wrote:
> On 2019-12-04 11:24 a.m., Pedro Alves wrote:
>> On 12/4/19 3:43 AM, Simon Marchi wrote:
>>> I'm just a bit worried about the naming, but I don't have anything better
>>> to suggest. I mention it in case you do. The "set print raw-values" sounds
>>> like superset of "set print raw-frame-arguments", because in my mind frame
>>> arguments are printed as values.
>>
>> But isn't it a superset?
>
> From my testing, "set print raw-values on/off" didn't affect how parameter values
> were printed in "bt" or "frame". But I might have tested it wrong.
Hmm, print_frame_arg does:
vp_opts.raw = fp_opts.print_raw_frame_arguments;
and I guess that is what ends up ignoring whatever's
the "set print raw-values" setting, even if you don't
explicitly specify "-raw-frame-arguments".
Thanks,
Pedro Alves
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [RFA] Implement 'print -raw-values' and 'set print raw-values on|off'
2019-12-04 17:19 ` Pedro Alves
@ 2019-12-07 14:01 ` Philippe Waroquiers
0 siblings, 0 replies; 15+ messages in thread
From: Philippe Waroquiers @ 2019-12-07 14:01 UTC (permalink / raw)
To: Pedro Alves, Simon Marchi, gdb-patches
On Wed, 2019-12-04 at 17:19 +0000, Pedro Alves wrote:
> On 12/4/19 4:34 PM, Simon Marchi wrote:
> > On 2019-12-04 11:24 a.m., Pedro Alves wrote:
> > > On 12/4/19 3:43 AM, Simon Marchi wrote:
> > > > I'm just a bit worried about the naming, but I don't have anything better
> > > > to suggest. I mention it in case you do. The "set print raw-values" sounds
> > > > like superset of "set print raw-frame-arguments", because in my mind frame
> > > > arguments are printed as values.
> > >
> > > But isn't it a superset?
> >
> > From my testing, "set print raw-values on/off" didn't affect how parameter values
> > were printed in "bt" or "frame". But I might have tested it wrong.
>
> Hmm, print_frame_arg does:
>
> vp_opts.raw = fp_opts.print_raw_frame_arguments;
>
> and I guess that is what ends up ignoring whatever's
> the "set print raw-values" setting, even if you don't
> explicitly specify "-raw-frame-arguments".
Yes, effectively, "set print raw-values on/off" controls printing
expressions from print commands, while "set print raw-frame-arguments"
independently controls how the "frame related commands" print their
frame arguments.
Philippe
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2019-12-07 14:01 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-07 19:39 [RFA] Implement 'print -raw-values' and 'set print raw-values on|off' Philippe Waroquiers
2019-08-07 21:38 ` Tom Tromey
2019-08-08 18:59 ` Philippe Waroquiers
2019-08-08 17:25 ` Eli Zaretskii
2019-09-07 11:42 ` PING " Philippe Waroquiers
2019-09-29 15:29 ` PING^2 " Philippe Waroquiers
2019-09-29 15:33 ` Eli Zaretskii
2019-09-29 15:49 ` Philippe Waroquiers
2019-10-20 10:26 ` PING^3 " Philippe Waroquiers
2019-12-04 16:18 ` Pedro Alves
2019-12-04 3:43 ` Simon Marchi
2019-12-04 16:24 ` Pedro Alves
2019-12-04 16:34 ` Simon Marchi
2019-12-04 17:19 ` Pedro Alves
2019-12-07 14:01 ` Philippe Waroquiers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).