diff options
author | Bruno "Polaco" Penteado <polaco@gmail.com> | 2017-08-14 22:14:17 (GMT) |
---|---|---|
committer | Ćukasz Langa <lukasz@langa.pl> | 2017-08-14 22:14:17 (GMT) |
commit | 2e0f4db114424a00354eab889ba8f7334a2ab8f0 (patch) | |
tree | 1d04d2c131de3cfdb846b46a99c203c2451adca7 /Tools/gdb | |
parent | 143be366295038b36fc32c44b8e1b48a375eab56 (diff) | |
download | cpython-2e0f4db114424a00354eab889ba8f7334a2ab8f0.zip cpython-2e0f4db114424a00354eab889ba8f7334a2ab8f0.tar.gz cpython-2e0f4db114424a00354eab889ba8f7334a2ab8f0.tar.bz2 |
bpo-30983: eval frame rename in pep 0523 broke gdb's python extension (#2803)
pep 0523 renames PyEval_EvalFrameEx to _PyEval_EvalFrameDefault while the gdb python extension only looks for PyEval_EvalFrameEx to understand if it is dealing with a frame.
Final effect is that attaching gdb to a python3.6 process doesnt resolve python objects. Eg. py-list and py-bt dont work properly.
This patch fixes that. Tested locally on python3.6
Diffstat (limited to 'Tools/gdb')
-rwxr-xr-x | Tools/gdb/libpython.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py index cc23b84..7c8874a 100755 --- a/Tools/gdb/libpython.py +++ b/Tools/gdb/libpython.py @@ -1502,8 +1502,10 @@ class Frame(object): return False def is_evalframeex(self): - '''Is this a PyEval_EvalFrameEx frame?''' - if self._gdbframe.name() == 'PyEval_EvalFrameEx': + '''Is this a PyEval_EvalFrameEx or _PyEval_EvalFrameDefault (PEP 0523) + frame?''' + if self._gdbframe.name() in ('PyEval_EvalFrameEx', + '_PyEval_EvalFrameDefault'): ''' I believe we also need to filter on the inline struct frame_id.inline_depth, only regarding frames with |