From patchwork Sat Sep 7 11:38:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Philippe Waroquiers X-Patchwork-Id: 34443 Received: (qmail 105145 invoked by alias); 7 Sep 2019 11:38:42 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 105086 invoked by uid 89); 7 Sep 2019 11:38:41 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-22.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.1 spammy=scalars X-HELO: mailsec106.isp.belgacom.be Received: from mailsec106.isp.belgacom.be (HELO mailsec106.isp.belgacom.be) (195.238.20.102) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 07 Sep 2019 11:38:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=skynet.be; i=@skynet.be; q=dns/txt; s=securemail; t=1567856320; x=1599392320; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=PYafStsoBp8R7l74J+GeaTIqhPdLqdBDEJqt69/XloA=; b=K9+uBaHH4IefpzaNjs6eKoVJ65Ony34WWQNRoQrzGCVHdcXLoKEQP6ZR p6F7DUgRAJ67ThqG2UqzZxCTsSSFuA==; Received: from 255.38-242-81.adsl-dyn.isp.belgacom.be (HELO md.home) ([81.242.38.255]) by relay.skynet.be with ESMTP/TLS/DHE-RSA-AES128-GCM-SHA256; 07 Sep 2019 13:38:32 +0200 From: Philippe Waroquiers To: gdb-patches@sourceware.org Cc: Philippe Waroquiers Subject: [RFAv4 3/3] NEWS and documentation for $_gdb_setting and $_gdb_int_setting. Date: Sat, 7 Sep 2019 13:38:23 +0200 Message-Id: <20190907113823.17436-4-philippe.waroquiers@skynet.be> In-Reply-To: <20190907113823.17436-1-philippe.waroquiers@skynet.be> References: <20190907113823.17436-1-philippe.waroquiers@skynet.be> MIME-Version: 1.0 X-IsSubscribed: yes gdb/ChangeLog 2019-09-07 Philippe Waroquiers * NEWS: Mention $_gdb_setting, $_gdb_setting_str, $_gdb_maint_setting and $_gdb_maint_setting_str. gdb/doc/ChangeLog 2019-09-07 Philippe Waroquiers * gdb.texinfo (Convenience Funs): Document the new $_gdb_setting_str, $_gdb_maint_setting and $_gdb_maint_setting_str convenience functions. --- gdb/NEWS | 6 ++++ gdb/doc/gdb.texinfo | 80 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 85 insertions(+), 1 deletion(-) diff --git a/gdb/NEWS b/gdb/NEWS index f382e887c0..0277af0519 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/gdb.texinfo b/gdb/doc/gdb.texinfo index 53b7de91e4..baddfb9e02 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -11877,9 +11877,87 @@ $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") +$2 = "scalars" +(@value{GDBP}) p $_gdb_setting_str("height") +$3 = "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 setting is either @code{unsigned int} +or @code{int}, depending on the setting. + +Some integer settings accepts 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 accepting the @code{unlimited} value +are using 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 function @code{$_gdb_setting} 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") +$3 = "30" +(@value{GDBP}) p $_gdb_setting("height") +$4 = 30 +(@value{GDBP}) set height unlimited +(@value{GDBP}) p $_gdb_setting_str("height") +$5 = "unlimited" +(@value{GDBP}) p $_gdb_setting("height") +$6 = 0 +@end group +@group +(@value{GDBP}) p $_gdb_setting_str("history size") +$7 = "unlimited" +(@value{GDBP}) p $_gdb_setting("history size") +$8 = -1 +(@value{GDBP}) p $_gdb_setting_str("disassemble-next-line") +$9 = "auto" +(@value{GDBP}) p $_gdb_setting("disassemble-next-line") +$10 = -1 +(@value{GDBP}) +@end group +@end smallexample + +Other settings (enum, filename, optional filename, string, string noescape) +are returned as string values. + @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