From: Philippe Waroquiers Date: Sat, 4 May 2019 21:48:36 +0000 (+0200) Subject: Document 'set print frame-info|frame-arguments presence'. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bc4268a5d926c8f29e42d245322145dad131627f;p=binutils-gdb.git Document 'set print frame-info|frame-arguments presence'. gdb/ChangeLog 2019-06-19 Philippe Waroquiers * 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 * 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. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4cd32d4b913..dcc6a91b60b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2019-07-29 Philippe Waroquiers + + * 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 * frame.h (enum print_what): New value 'SHORT_LOCATION', update diff --git a/gdb/NEWS b/gdb/NEWS index cc1d58520d4..a08265cae72 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -36,6 +36,11 @@ ** gdb.Type has a new property 'objfile' which returns the objfile the 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 | [COMMAND] | SHELL_COMMAND @@ -104,6 +109,14 @@ maint show test-settings KIND A set of commands used by the testsuite for exercising the settings 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 help @@ -130,6 +143,10 @@ show style a style name in their output using its own style, to help 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 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 -frame-arguments all|scalars|none -raw-frame-arguments [on|off] + -frame-info auto|source-line|location|source-and-location + |location-and-address|short-location -past-main [on|off] -past-entry [on|off] diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index ca0e3ee1155..c409fe867b9 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,10 @@ +2019-07-29 Philippe Waroquiers + + * 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 * gdb.texinfo (Symbols): Add information about -q flag to "info diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index be65d528d28..0fcd131f71e 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -7806,6 +7806,10 @@ Related setting: @ref{set print frame-arguments}. @item -raw-frame-arguments [@code{on}|@code{off}] Set whether to print frame arguments in raw form. 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 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 @kbd{set print frame-arguments} in @ref{Print Settings} for more details 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 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 print all frame argument values @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 when the debugger prints a frame (@pxref{Frames}). The possible 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{}) at frame-args.c:23 @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 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 the computation of large arguments can sometimes be CPU-intensive, especially in large applications. Setting @code{print frame-arguments} -to @code{scalars} (the default) or @code{none} avoids this computation, -thus speeding up the display of each Ada frame. +to @code{scalars} (the default), @code{none} or @code{presence} avoids +this computation, thus speeding up the display of each Ada frame. @item show print frame-arguments 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 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} @item set print repeats @var{number-of-repeats} @itemx set print repeats unlimited