diff options
author | Petr Viktorin <encukou@gmail.com> | 2019-05-29 22:45:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-29 22:45:41 +0200 |
commit | fecb75c1bb46c818e6579ba422cfa5d0d9d104d1 (patch) | |
tree | 36238cb886d5740f29cf07344d89c37931c9a908 | |
parent | e70bfa95e6f0c98b9906f306f24d71f8b7689f87 (diff) | |
download | cpython-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.py | 2 | ||||
-rwxr-xr-x | Tools/gdb/libpython.py | 3 |
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 |