From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 81140 invoked by alias); 31 Oct 2019 22:56:35 -0000 Mailing-List: contact gdb-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: , Sender: gdb-cvs-owner@sourceware.org List-Subscribe: Sender: gdb-cvs-owner@sourceware.org Received: (qmail 81123 invoked by uid 9902); 31 Oct 2019 22:56:35 -0000 Date: Thu, 31 Oct 2019 22:56:00 -0000 Message-ID: <20191031225635.81122.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Philippe Waroquiers To: gdb-cvs@sourceware.org Subject: [binutils-gdb] NEWS and documentation for $_gdb_setting and $_gdb_setting_str. X-Act-Checkin: binutils-gdb X-Git-Author: Philippe Waroquiers X-Git-Refname: refs/heads/master X-Git-Oldrev: f3fb2519e629bf8533108c2b7b108e6db98c02f2 X-Git-Newrev: aed61d02fb112ac2b94f67df3ed24ed29dcf911e X-SW-Source: 2019-10/txt/msg00204.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=aed61d02fb112ac2b94f67df3ed24ed29dcf911e commit aed61d02fb112ac2b94f67df3ed24ed29dcf911e Author: Philippe Waroquiers Date: Sun Apr 28 14:44:44 2019 +0200 NEWS and documentation for $_gdb_setting and $_gdb_setting_str. gdb/ChangeLog 2019-10-31 Philippe Waroquiers * NEWS: Mention $_gdb_setting, $_gdb_setting_str, $_gdb_maint_setting and $_gdb_maint_setting_str. gdb/doc/ChangeLog 2019-10-31 Philippe Waroquiers * gdb.texinfo (Convenience Funs): Document the new $_gdb_setting_str, $_gdb_maint_setting and $_gdb_maint_setting_str convenience functions. Diff: --- gdb/ChangeLog | 5 +++ gdb/NEWS | 6 ++++ gdb/doc/ChangeLog | 6 ++++ gdb/doc/gdb.texinfo | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 107 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7c68083..9c97b82 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2019-10-31 Philippe Waroquiers + * NEWS: Mention $_gdb_setting, $_gdb_setting_str, $_gdb_maint_setting + and $_gdb_maint_setting_str. + +2019-10-31 Philippe Waroquiers + * cli/cli-cmds.c (setting_cmd, value_from_setting) (gdb_setting_internal_fn, gdb_maint_setting_internal_fn) (str_value_from_setting, gdb_setting_str_internal_fn) diff --git a/gdb/NEWS b/gdb/NEWS index 7613598..ef21b5d 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -11,6 +11,12 @@ scripts that should work error-free with many different versions, such as in system-wide init files. +* New built-in convenience functions $_gdb_setting, $_gdb_setting_str, + $_gdb_maint_setting and $_gdb_maint_setting_str provide access to values + of the GDB settings and the GDB maintenance settings. They are handy + for changing the logic of user defined commands depending on the + current GDB settings. + * GDB now supports Thread Local Storage (TLS) variables on several FreeBSD architectures (amd64, i386, powerpc, riscv). Other architectures require kernel changes. TLS is not yet supported for diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index c1538be..4d3f755 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,9 @@ +2019-10-31 Philippe Waroquiers + + * gdb.texinfo (Convenience Funs): Document the new + $_gdb_setting_str, $_gdb_maint_setting and $_gdb_maint_setting_str + convenience functions. + 2019-10-29 Christian Biesinger * Makefile.in: Also set SYSTEM_GDBINIT_DIR for the info manual diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index db3d15b..7cf4141 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -11987,9 +11987,98 @@ $3 = void $4 = 1 @end smallexample +@item $_gdb_setting_str (@var{setting}) +@findex $_gdb_setting_str@r{, convenience function} +Return the value of the @value{GDBN} @var{setting} as a string. +@var{setting} is any setting that can be used in a @code{set} or +@code{show} command (@pxref{Controlling GDB}). + +@smallexample +(@value{GDBP}) show print frame-arguments +Printing of non-scalar frame arguments is "scalars". +(@value{GDBP}) p $_gdb_setting_str("print frame-arguments") +$1 = "scalars" +(@value{GDBP}) p $_gdb_setting_str("height") +$2 = "30" +(@value{GDBP}) +@end smallexample + +@item $_gdb_setting (@var{setting}) +@findex $_gdb_setting@r{, convenience function} +Return the value of the @value{GDBN} @var{setting}. +The type of the returned value depends on the setting. + +The value type for boolean and auto boolean settings is @code{int}. +The boolean values @code{off} and @code{on} are converted to +the integer values @code{0} and @code{1}. The value @code{auto} is +converted to the value @code{-1}. + +The value type for integer settings is either @code{unsigned int} +or @code{int}, depending on the setting. + +Some integer settings accept an @code{unlimited} value. +Depending on the setting, the @code{set} command also accepts +the value @code{0} or the value @code{@minus{}1} as a synonym for +@code{unlimited}. +For example, @code{set height unlimited} is equivalent to +@code{set height 0}. + +Some other settings that accept the @code{unlimited} value +use the value @code{0} to literally mean zero. +For example, @code{set history size 0} indicates to not +record any @value{GDBN} commands in the command history. +For such settings, @code{@minus{}1} is the synonym +for @code{unlimited}. + +See the documentation of the corresponding @code{set} command for +the numerical value equivalent to @code{unlimited}. + +The @code{$_gdb_setting} function converts the unlimited value +to a @code{0} or a @code{@minus{}1} value according to what the +@code{set} command uses. + +@smallexample +@group +(@value{GDBP}) p $_gdb_setting_str("height") +$1 = "30" +(@value{GDBP}) p $_gdb_setting("height") +$2 = 30 +(@value{GDBP}) set height unlimited +(@value{GDBP}) p $_gdb_setting_str("height") +$3 = "unlimited" +(@value{GDBP}) p $_gdb_setting("height") +$4 = 0 +@end group +@group +(@value{GDBP}) p $_gdb_setting_str("history size") +$5 = "unlimited" +(@value{GDBP}) p $_gdb_setting("history size") +$6 = -1 +(@value{GDBP}) p $_gdb_setting_str("disassemble-next-line") +$7 = "auto" +(@value{GDBP}) p $_gdb_setting("disassemble-next-line") +$8 = -1 +(@value{GDBP}) +@end group +@end smallexample + +Other setting types (enum, filename, optional filename, string, string noescape) +are returned as string values. + + +@item $_gdb_maint_setting_str (@var{setting}) +@findex $_gdb_maint_setting_str@r{, convenience function} +Like the @code{$_gdb_setting_str} function, but works with +@code{maintenance set} variables. + +@item $_gdb_maint_setting (@var{setting}) +@findex $_gdb_maint_setting@r{, convenience function} +Like the @code{$_gdb_setting} function, but works with +@code{maintenance set} variables. + @end table -These functions require @value{GDBN} to be configured with +The following functions require @value{GDBN} to be configured with @code{Python} support. @table @code