From 50eb60e6bfedbdad2dda30fa5ce7fe3ce83f7748 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 20 Apr 2010 22:32:07 +0000 Subject: Merged revisions 80288 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r80288 | victor.stinner | 2010-04-21 00:28:31 +0200 (mer., 21 avril 2010) | 2 lines Issue #8437: Fix test_gdb failures, patch written by Dave Malcolm ........ --- Tools/gdb/libpython.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'Tools/gdb/libpython.py') diff --git a/Tools/gdb/libpython.py b/Tools/gdb/libpython.py index 26b07040c9..3050c893f3 100644 --- a/Tools/gdb/libpython.py +++ b/Tools/gdb/libpython.py @@ -1133,18 +1133,17 @@ class Frame(object): return index def is_evalframeex(self): - if self._gdbframe.function(): - if self._gdbframe.function().name == 'PyEval_EvalFrameEx': - ''' - I believe we also need to filter on the inline - struct frame_id.inline_depth, only regarding frames with - an inline depth of 0 as actually being this function - - So we reject those with type gdb.INLINE_FRAME - ''' - if self._gdbframe.type() == gdb.NORMAL_FRAME: - # We have a PyEval_EvalFrameEx frame: - return True + if self._gdbframe.name() == 'PyEval_EvalFrameEx': + ''' + I believe we also need to filter on the inline + struct frame_id.inline_depth, only regarding frames with + an inline depth of 0 as actually being this function + + So we reject those with type gdb.INLINE_FRAME + ''' + if self._gdbframe.type() == gdb.NORMAL_FRAME: + # We have a PyEval_EvalFrameEx frame: + return True return False @@ -1294,8 +1293,6 @@ class PyUp(gdb.Command): def invoke(self, args, from_tty): move_in_stack(move_up=True) -PyUp() - class PyDown(gdb.Command): 'Select and print the python stack frame called by this one (if any)' def __init__(self): @@ -1308,7 +1305,10 @@ class PyDown(gdb.Command): def invoke(self, args, from_tty): move_in_stack(move_up=False) -PyDown() +# Not all builds of gdb have gdb.Frame.select +if hasattr(gdb.Frame, 'select'): + PyUp() + PyDown() class PyBacktrace(gdb.Command): 'Display the current python frame and all the frames within its call stack (if any)' -- cgit v1.2.1