diff Tools/gdb/libpython.py @ 60792:19a9a457a47a

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 ........
author Victor Stinner <victor.stinner@haypocalc.com>
date Tue, 20 Apr 2010 22:32:07 +0000
parents fd3caea92cd9
children a2a4d9dc7884
line wrap: on
line diff
--- a/Tools/gdb/libpython.py	Tue Apr 20 21:40:47 2010 +0000
+++ b/Tools/gdb/libpython.py	Tue Apr 20 22:32:07 2010 +0000
@@ -1133,18 +1133,17 @@
         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
+        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
+            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 @@
     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 @@
     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)'