From 73bcde20bca31d6a1bba10b763cfaa192f277d23 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Sat, 31 Jan 2015 11:48:36 +0200 Subject: [PATCH] Issue #22765: Fixed test_gdb failures. Supressed unexpected gdb output. Patch by Bohuslav Kabrda. --- Lib/test/test_gdb.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py index c2f90b29796..948e7ca4e76 100644 --- a/Lib/test/test_gdb.py +++ b/Lib/test/test_gdb.py @@ -118,6 +118,25 @@ class DebuggerTests(unittest.TestCase): # Generate a list of commands in gdb's language: commands = ['set breakpoint pending yes', 'break %s' % breakpoint, + + # GDB as of 7.4 (?) onwards can distinguish between the + # value of a variable at entry vs current value: + # http://sourceware.org/gdb/onlinedocs/gdb/Variables.html + # which leads to the selftests failing with errors like this: + # AssertionError: 'v@entry=()' != '()' + # Disable this: + 'set print entry-values no', + + # The tests assume that the first frame of printed + # backtrace will not contain program counter, + # that is however not guaranteed by gdb + # therefore we need to use 'set print address off' to + # make sure the counter is not there. For example: + # #0 in PyObject_Print ... + # is assumed, but sometimes this can be e.g. + # #0 0x00003fffb7dd1798 in PyObject_Print ... + 'set print address off', + 'run'] if cmds_after_breakpoint: commands += cmds_after_breakpoint