[PATCH] - Adapt to Python-3 print syntax

Jeremy Bryant
2025-10-14T22:15:23Z

[-- Attachment #1: Type: text/plain, Size: 563 bytes --]

This change adapts doc examples to Python 3 so they work on current
installations.

python.texi uses a mixture of Python 3 and Python 2 print syntax, the
latter having been sunsetted several years ago.

Adding Eli as "Responsible Maintainer" for documentation.
Also adding Simon Marchi who from recent commits may have an interest in this
part of GDB and may have comments or suggestions.

Perhaps this patch falls under "The Obvious Fix Rule".
The patch is provided inline for critique and also as attachment.
If I have missed any conventions please state so.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-doc-python.texi-Adapt-to-Python-3-print-syntax.patch --]
[-- Type: text/x-diff, Size: 2635 bytes --]

From b9c89565ee4bf3dafe383dda3d2ff752ffa7b01f Mon Sep 17 00:00:00 2001
From: Jeremy Bryant <jb@jeremybryant.net>
Date: Tue, 14 Oct 2025 22:55:39 +0100
Subject: [PATCH] * doc/python.texi : Adapt to Python 3 print syntax

This change adapts the print syntax to Python 3.
The documentation examples will then work on current installations.
Python 2 was sunsetted in January 2020.
---
gdb/doc/python.texi | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
index ed113173667..4238b04d155 100644
--- a/gdb/doc/python.texi
+++ b/gdb/doc/python.texi
@@ -76,7 +76,7 @@ If given an argument, the @code{python} command will evaluate the
argument as a Python command. For example:

@smallexample
-(@value{GDBP}) python print 23
+(@value{GDBP}) python print(23)
23
@end smallexample

@@ -88,7 +88,7 @@ containing @code{end}. For example:

@smallexample
(@value{GDBP}) python
->print 23
+>print(23)
>end
23
@end smallexample
@@ -756,7 +756,7 @@ depends on @code{set python print-stack} (@pxref{Python Commands}).
Example:

@smallexample
-(@value{GDBP}) python print foo
+(@value{GDBP}) python print(foo)
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'foo' is not defined
@@ -4652,7 +4652,7 @@ Arguments are separated by spaces and may be quoted.
Example:

@smallexample
-print gdb.string_to_argv ("1 2\ \\\"3 '4 \"5' \"6 '7\"")
+print (gdb.string_to_argv ("1 2\ \\\"3 '4 \"5' \"6 '7\""))
['1', '2 "3', '4 "5', "6 '7"]
@end smallexample

@@ -5981,7 +5981,7 @@ Two @code{gdb.Frame} objects can be compared for equality with the @code{==}
operator, like:

@smallexample
-(@value{GDBP}) python print gdb.newest_frame() == gdb.selected_frame ()
+(@value{GDBP}) python print (gdb.newest_frame() == gdb.selected_frame ())
True
@end smallexample

@@ -9129,7 +9129,7 @@ Then in gdb:
(gdb) start
(gdb) python import gdb.types
(gdb) python foo_ref = gdb.parse_and_eval("foo_ref")
-(gdb) python print gdb.types.get_basic_type(foo_ref.type)
+(gdb) python print (gdb.types.get_basic_type(foo_ref.type))
int
@end smallexample

@@ -9162,9 +9162,9 @@ Then in @value{GDBN}:
@smallexample
(@value{GDBP}) python import gdb.types
(@value{GDBP}) python struct_a = gdb.lookup_type("struct A")
-(@value{GDBP}) python print struct_a.keys ()
+(@value{GDBP}) python print (struct_a.keys ())
@{['a', '']@}
-(@value{GDBP}) python print [k for k,v in gdb.types.deep_items(struct_a)]
+(@value{GDBP}) python print ([k for k,v in gdb.types.deep_items(struct_a)])
@{['a', 'b0', 'b1']@}
@end smallexample

--
2.47.2

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: Adapt to Python 3 print syntax --]
[-- Type: text/x-diff, Size: 2635 bytes --]

From b9c89565ee4bf3dafe383dda3d2ff752ffa7b01f Mon Sep 17 00:00:00 2001
From: Jeremy Bryant <jb@jeremybryant.net>
Date: Tue, 14 Oct 2025 22:55:39 +0100
Subject: [PATCH] * doc/python.texi : Adapt to Python 3 print syntax

This change adapts the print syntax to Python 3.
The documentation examples will then work on current installations.
Python 2 was sunsetted in January 2020.
---
gdb/doc/python.texi | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
index ed113173667..4238b04d155 100644
--- a/gdb/doc/python.texi
+++ b/gdb/doc/python.texi
@@ -76,7 +76,7 @@ If given an argument, the @code{python} command will evaluate the
argument as a Python command. For example:

@smallexample
-(@value{GDBP}) python print 23
+(@value{GDBP}) python print(23)
23
@end smallexample

@@ -88,7 +88,7 @@ containing @code{end}. For example:

@smallexample
(@value{GDBP}) python
->print 23
+>print(23)
>end
23
@end smallexample
@@ -756,7 +756,7 @@ depends on @code{set python print-stack} (@pxref{Python Commands}).
Example:

@smallexample
-(@value{GDBP}) python print foo
+(@value{GDBP}) python print(foo)
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'foo' is not defined
@@ -4652,7 +4652,7 @@ Arguments are separated by spaces and may be quoted.
Example:

@smallexample
-print gdb.string_to_argv ("1 2\ \\\"3 '4 \"5' \"6 '7\"")
+print (gdb.string_to_argv ("1 2\ \\\"3 '4 \"5' \"6 '7\""))
['1', '2 "3', '4 "5', "6 '7"]
@end smallexample

@@ -5981,7 +5981,7 @@ Two @code{gdb.Frame} objects can be compared for equality with the @code{==}
operator, like:

@smallexample
-(@value{GDBP}) python print gdb.newest_frame() == gdb.selected_frame ()
+(@value{GDBP}) python print (gdb.newest_frame() == gdb.selected_frame ())
True
@end smallexample

@@ -9129,7 +9129,7 @@ Then in gdb:
(gdb) start
(gdb) python import gdb.types
(gdb) python foo_ref = gdb.parse_and_eval("foo_ref")
-(gdb) python print gdb.types.get_basic_type(foo_ref.type)
+(gdb) python print (gdb.types.get_basic_type(foo_ref.type))
int
@end smallexample

@@ -9162,9 +9162,9 @@ Then in @value{GDBN}:
@smallexample
(@value{GDBP}) python import gdb.types
(@value{GDBP}) python struct_a = gdb.lookup_type("struct A")
-(@value{GDBP}) python print struct_a.keys ()
+(@value{GDBP}) python print (struct_a.keys ())
@{['a', '']@}
-(@value{GDBP}) python print [k for k,v in gdb.types.deep_items(struct_a)]
+(@value{GDBP}) python print ([k for k,v in gdb.types.deep_items(struct_a)])
@{['a', 'b0', 'b1']@}
@end smallexample

--
2.47.2