Document 'set print frame-info|frame-arguments presence'.

gdb/ChangeLog
2019-06-19  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* NEWS: Mention 'set|show print frame-info'.  Mention new
	'presence' value for 'frame-arguments'.  Mention new '-frame-info'
	backtrace argument.  Mention that python frame filtering code
	is now consistent with what 'backtrace' command prints.

gdb/doc/ChangeLog
2019-07-29  Philippe Waroquiers  <philippe.waroquiers@skynet.be>

	* gdb.texinfo (Backtrace): Document the new '-frame-info'
	backtrace option.  Reference 'set print frame-info'.
	(Print Settings): Document 'set|show print frame-info'.
	Document new 'presence' value for 'set print frame-arguments.
This commit is contained in:
Philippe Waroquiers
2019-05-04 23:48:36 +02:00
parent c7e4c0a648
commit bc4268a5d9
4 changed files with 93 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2019-07-29 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* NEWS: Mention 'set|show print frame-info'. Mention new
'presence' value for 'frame-arguments'. Mention new '-frame-info'
backtrace argument. Mention that python frame filtering code
is now consistent with what 'backtrace' command prints.
2019-07-29 Philippe Waroquiers <philippe.waroquiers@skynet.be> 2019-07-29 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* frame.h (enum print_what): New value 'SHORT_LOCATION', update * frame.h (enum print_what): New value 'SHORT_LOCATION', update

View File

@ -36,6 +36,11 @@
** gdb.Type has a new property 'objfile' which returns the objfile the ** gdb.Type has a new property 'objfile' which returns the objfile the
type was defined in. type was defined in.
** The frame information printed by the python frame filtering code
is now consistent with what the 'backtrace' command prints when
there are no filters, or when the 'backtrace' '-no-filters' option
is given.
* New commands * New commands
| [COMMAND] | SHELL_COMMAND | [COMMAND] | SHELL_COMMAND
@ -104,6 +109,14 @@ maint show test-settings KIND
A set of commands used by the testsuite for exercising the settings A set of commands used by the testsuite for exercising the settings
infrastructure. infrastructure.
set print frame-info [short-location|location|location-and-address
|source-and-location|source-line|auto]
show print frame-info
This controls what frame information is printed by the commands printing
a frame. This setting will e.g. influence the behaviour of 'backtrace',
'frame', 'stepi'. The python frame filtering also respect this setting.
The 'backtrace' '-frame-info' option can override this global setting.
* Changed commands * Changed commands
help help
@ -130,6 +143,10 @@ show style
a style name in their output using its own style, to help a style name in their output using its own style, to help
the user visualize the different styles. the user visualize the different styles.
set print frame-arguments
The new value 'presence' indicates to only indicate the presence of
arguments using ..., instead of printing argument names and values.
set print raw-frame-arguments set print raw-frame-arguments
show print raw-frame-arguments show print raw-frame-arguments
@ -184,6 +201,8 @@ maint show test-options-completion-result
-entry-values no|only|preferred|if-needed|both|compact|default -entry-values no|only|preferred|if-needed|both|compact|default
-frame-arguments all|scalars|none -frame-arguments all|scalars|none
-raw-frame-arguments [on|off] -raw-frame-arguments [on|off]
-frame-info auto|source-line|location|source-and-location
|location-and-address|short-location
-past-main [on|off] -past-main [on|off]
-past-entry [on|off] -past-entry [on|off]

View File

@ -1,3 +1,10 @@
2019-07-29 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.texinfo (Backtrace): Document the new '-frame-info'
backtrace option. Reference 'set print frame-info'.
(Print Settings): Document 'set|show print frame-info'.
Document new 'presence' value for 'set print frame-arguments.
2019-07-22 Andrew Burgess <andrew.burgess@embecosm.com> 2019-07-22 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.texinfo (Symbols): Add information about -q flag to "info * gdb.texinfo (Symbols): Add information about -q flag to "info

View File

@ -7806,6 +7806,10 @@ Related setting: @ref{set print frame-arguments}.
@item -raw-frame-arguments [@code{on}|@code{off}] @item -raw-frame-arguments [@code{on}|@code{off}]
Set whether to print frame arguments in raw form. Set whether to print frame arguments in raw form.
Related setting: @ref{set print raw-frame-arguments}. Related setting: @ref{set print raw-frame-arguments}.
@item -frame-info @code{auto}|@code{source-line}|@code{location}|@code{source-and-location}|@code{location-and-address}|@code{short-location}
Set printing of frame information.
Related setting: @ref{set print frame-info}.
@end table @end table
The optional @var{qualifier} is maintained for backward compatibility. The optional @var{qualifier} is maintained for backward compatibility.
@ -7870,6 +7874,8 @@ The value of parameter @code{data} in frame 1 has been replaced by
only if it is a scalar (integer, pointer, enumeration, etc). See command only if it is a scalar (integer, pointer, enumeration, etc). See command
@kbd{set print frame-arguments} in @ref{Print Settings} for more details @kbd{set print frame-arguments} in @ref{Print Settings} for more details
on how to configure the way function parameter values are printed. on how to configure the way function parameter values are printed.
The command @kbd{set print frame-info} (@pxref{Print Settings}) controls
what frame information is printed.
@cindex optimized out, in backtrace @cindex optimized out, in backtrace
@cindex function call arguments, optimized out @cindex function call arguments, optimized out
@ -10816,7 +10822,7 @@ If the number is 0, then the printing is unlimited.
@cindex printing frame argument values @cindex printing frame argument values
@cindex print all frame argument values @cindex print all frame argument values
@cindex print frame argument values for scalars only @cindex print frame argument values for scalars only
@cindex do not print frame argument values @cindex do not print frame arguments
This command allows to control how the values of arguments are printed This command allows to control how the values of arguments are printed
when the debugger prints a frame (@pxref{Frames}). The possible when the debugger prints a frame (@pxref{Frames}). The possible
values are: values are:
@ -10844,6 +10850,17 @@ is replaced by @code{@dots{}}. In this case, the example above now becomes:
#1 0x08048361 in call_me (i=@dots{}, s=@dots{}, ss=@dots{}, u=@dots{}, e=@dots{}) #1 0x08048361 in call_me (i=@dots{}, s=@dots{}, ss=@dots{}, u=@dots{}, e=@dots{})
at frame-args.c:23 at frame-args.c:23
@end smallexample @end smallexample
@item presence
Only the presence of arguments is indicated by @code{@dots{}}.
The @code{@dots{}} are not printed for function without any arguments.
None of the argument names and values are printed.
In this case, the example above now becomes:
@smallexample
#1 0x08048361 in call_me (@dots{}) at frame-args.c:23
@end smallexample
@end table @end table
By default, only scalar arguments are printed. This command can be used By default, only scalar arguments are printed. This command can be used
@ -10854,8 +10871,8 @@ information printed in each frame, making the backtrace more readable.
Also, it improves performance when displaying Ada frames, because Also, it improves performance when displaying Ada frames, because
the computation of large arguments can sometimes be CPU-intensive, the computation of large arguments can sometimes be CPU-intensive,
especially in large applications. Setting @code{print frame-arguments} especially in large applications. Setting @code{print frame-arguments}
to @code{scalars} (the default) or @code{none} avoids this computation, to @code{scalars} (the default), @code{none} or @code{presence} avoids
thus speeding up the display of each Ada frame. this computation, thus speeding up the display of each Ada frame.
@item show print frame-arguments @item show print frame-arguments
Show how the value of arguments should be displayed when printing a frame. Show how the value of arguments should be displayed when printing a frame.
@ -10988,6 +11005,46 @@ entry resolution see @ref{set debug entry-values}.
Show the method being used for printing of frame argument values at function Show the method being used for printing of frame argument values at function
entry. entry.
@anchor{set print frame-info}
@item set print frame-info @var{value}
@kindex set print frame-info
@cindex printing frame information
@cindex frame information, printing
This command allows to control the information printed when
the debugger prints a frame. See @ref{Frames}, @ref{Backtrace},
for a general explanation about frames and frame information.
Note that some other settings (such as @code{set print frame-arguments}
and @code{set print address}) are also influencing if and how some frame
information is displayed. In particular, the frame program counter is never
printed if @code{set print address} is off.
The possible values for @code{set print frame-info} are:
@table @code
@item short-location
Print the frame level, the program counter (if not at the
beginning of the location source line), the function, the function
arguments.
@item location
Same as @code{short-location} but also print the source file and source line
number.
@item location-and-address
Same as @code{location} but print the program counter even if located at the
beginning of the location source line.
@item source-line
Print the program counter (if not at the beginning of the location
source line), the line number and the source line.
@item source-and-location
Print what @code{location} and @code{source-line} are printing.
@item auto
The information printed for a frame is decided automatically
by the @value{GDBN} command that prints a frame.
For example, @code{frame} prints the information printed by
@code{source-and-location} while @code{stepi} will switch between
@code{source-line} and @code{source-and-location} depending on the program
counter.
The default value is @code{auto}.
@end table
@anchor{set print repeats} @anchor{set print repeats}
@item set print repeats @var{number-of-repeats} @item set print repeats @var{number-of-repeats}
@itemx set print repeats unlimited @itemx set print repeats unlimited