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
This commit is contained in:
Bruno "Polaco" Penteado 2017-08-14 23:14:17 +01:00 committed by Łukasz Langa
parent 143be36629
commit 2e0f4db114
1 changed files with 4 additions and 2 deletions

View File

@ -1502,8 +1502,10 @@ class Frame(object):
return False return False
def is_evalframeex(self): def is_evalframeex(self):
'''Is this a PyEval_EvalFrameEx frame?''' '''Is this a PyEval_EvalFrameEx or _PyEval_EvalFrameDefault (PEP 0523)
if self._gdbframe.name() == 'PyEval_EvalFrameEx': frame?'''
if self._gdbframe.name() in ('PyEval_EvalFrameEx',
'_PyEval_EvalFrameDefault'):
''' '''
I believe we also need to filter on the inline I believe we also need to filter on the inline
struct frame_id.inline_depth, only regarding frames with struct frame_id.inline_depth, only regarding frames with