[PATCH][gdb] Fix python selftest with python 3.11

Tom de Vries tdevries@suse.de
Thu Jul 21 11:13:17 GMT 2022


Hi,

With python 3.11 I noticed:
...
$ gdb -q -batch -ex "maint selftest python"
Running selftest python.
Self test failed: self-test failed at gdb/python/python.c:2246
Ran 1 unit tests, 1 failed
...

In more detail:
...
(gdb) p output
$5 = "Traceback (most recent call last):\n  File \"<string>\", line 0, \
  in <module>\nKeyboardInterrupt\n"
(gdb) p ref_output
$6 = "Traceback (most recent call last):\n  File \"<string>\", line 1, \
  in <module>\nKeyboardInterrupt\n"
...

Fix this by also allowing line number 0.

Tested on x86_64-linux.

This should hopefully fix buildbot builder gdb-rawhide-x86_64.

Any comments?

Thanks,
- Tom

[gdb] Fix python selftest with python 3.11

---
 gdb/python/python.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/gdb/python/python.c b/gdb/python/python.c
index 8fa935c8286..365859a2e4e 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -2240,10 +2240,13 @@ test_python ()
 	SELF_CHECK (*e.message == "Error while executing Python code.");
       }
     SELF_CHECK (saw_exception);
-    std::string ref_output("Traceback (most recent call last):\n"
-			   "  File \"<string>\", line 1, in <module>\n"
-			   "KeyboardInterrupt\n");
-    SELF_CHECK (output == ref_output);
+    std::string ref_output_0("Traceback (most recent call last):\n"
+			     "  File \"<string>\", line 0, in <module>\n"
+			     "KeyboardInterrupt\n");
+    std::string ref_output_1("Traceback (most recent call last):\n"
+			     "  File \"<string>\", line 1, in <module>\n"
+			     "KeyboardInterrupt\n");
+    SELF_CHECK (output == ref_output_0 || output == ref_output_1);
   }
 
 #undef CMD


More information about the Gdb-patches mailing list