summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Viktorin <encukou@gmail.com>2019-05-29 22:45:41 +0200
committerGitHub <noreply@github.com>2019-05-29 22:45:41 +0200
commitfecb75c1bb46c818e6579ba422cfa5d0d9d104d1 (patch)
tree36238cb886d5740f29cf07344d89c37931c9a908
parente70bfa95e6f0c98b9906f306f24d71f8b7689f87 (diff)
downloadcpython-git-fecb75c1bb46c818e6579ba422cfa5d0d9d104d1.tar.gz
bpo-36974: Fix GDB integration (GH-13665)
As it changes the way functions are called, the PEP 590 implementation skipped the functions that the GDB integration is looking for (by name) to find function calls. Looking for the new helper `cfunction_call_varargs` hopefully fixes the tests, and thus buildbots. The changed frame nuber in test_gdb is due to there being fewer C calls when calling a built-in method.
-rw-r--r--Lib/test/test_gdb.py2
-rwxr-xr-xTools/gdb/libpython.py3
2 files changed, 3 insertions, 2 deletions
diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py
index dbcb5983e9..3127e69ca9 100644
--- a/Lib/test/test_gdb.py
+++ b/Lib/test/test_gdb.py
@@ -887,7 +887,7 @@ id(42)
breakpoint='time_gmtime',
cmds_after_breakpoint=['py-bt-full'],
)
- self.assertIn('#2 <built-in method gmtime', gdb_output)
+ self.assertIn('#1 <built-in method gmtime', gdb_output)
@unittest.skipIf(python_is_optimized(),
"Python was compiled with optimizations")
diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py
index d744cab764..d49546fa9c 100755
--- a/Tools/gdb/libpython.py
+++ b/Tools/gdb/libpython.py
@@ -1564,7 +1564,8 @@ class Frame(object):
return False
if caller in ('_PyCFunction_FastCallDict',
- '_PyCFunction_FastCallKeywords'):
+ '_PyCFunction_FastCallKeywords',
+ 'cfunction_call_varargs'):
arg_name = 'func'
# Within that frame:
# "func" is the local containing the PyObject* of the