diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/NEWS | 6 | ||||
-rw-r--r-- | gdb/doc/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 91 |
4 files changed, 107 insertions, 1 deletions
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 <philippe.waroquiers@skynet.be> + * NEWS: Mention $_gdb_setting, $_gdb_setting_str, $_gdb_maint_setting + and $_gdb_maint_setting_str. + +2019-10-31 Philippe Waroquiers <philippe.waroquiers@skynet.be> + * 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) @@ -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 <philippe.waroquiers@skynet.be> + + * 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 <cbiesinger@google.com> * 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 |