From c4a3dbaf1132105586586617a59d0e7566eefd41 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 6 Jun 2022 09:54:45 -0600 Subject: Expose current 'print' settings to Python PR python/17291 asks for access to the current print options. While I think this need is largely satisfied by the existence of Value.format_string, it seemed to me that a bit more could be done. First, while Value.format_string uses the user's settings, it does not react to temporary settings such as "print/x". This patch changes this. Second, there is no good way to examine the current settings (in particular the temporary ones in effect for just a single "print"). This patch adds this as well. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17291 --- gdb/doc/python.texi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'gdb/doc') diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi index 19ae330..4573ba67 100644 --- a/gdb/doc/python.texi +++ b/gdb/doc/python.texi @@ -1742,6 +1742,24 @@ pretty-printer for this value exists, then it is returned. If no such printer exists, then this returns @code{None}. @end defun +Normally, a pretty-printer can respect the user's print settings +(including temporarily applied settings, such as @samp{/x}) simply by +calling @code{Value.format_string} (@pxref{Values From Inferior}). +However, these settings can also be queried directly: + +@findex gdb.print_options +@defun gdb.print_options () +Return a dictionary whose keys are the valid keywords that can be +given to @code{Value.format_string}, and whose values are the user's +settings. During a @code{print} or other operation, the values will +reflect any flags that are temporarily in effect. + +@smallexample +(gdb) python print (gdb.print_options ()['max_elements']) +200 +@end smallexample +@end defun + @node Selecting Pretty-Printers @subsubsection Selecting Pretty-Printers @cindex selecting python pretty-printers -- cgit v1.1