File tree 2 files changed +9
-11
lines changed
2 files changed +9
-11
lines changed Original file line number Diff line number Diff line change @@ -823,6 +823,8 @@ def test_bt_full(self):
823
823
foo\(1, 2, 3\)
824
824
''' )
825
825
826
+ @unittest .skipIf (python_is_optimized (),
827
+ "Python was compiled with optimizations" )
826
828
def test_threads (self ):
827
829
'Verify that "py-bt" indicates threads that are waiting for the GIL'
828
830
cmd = '''
Original file line number Diff line number Diff line change @@ -1801,17 +1801,13 @@ def get_pyop(self):
1801
1801
frame = PyFramePtr (frame )
1802
1802
if not frame .is_optimized_out ():
1803
1803
return frame
1804
- # gdb is unable to get the "frame" argument of PyEval_EvalFrameEx()
1805
- # because it was "optimized out". Try to get "frame" from the frame
1806
- # of the caller, _PyEval_Vector().
1807
- orig_frame = frame
1808
- caller = self ._gdbframe .older ()
1809
- if caller :
1810
- frame = caller .read_var ('frame' )
1811
- frame = PyFramePtr (frame )
1812
- if not frame .is_optimized_out ():
1813
- return frame
1814
- return orig_frame
1804
+ cframe = self ._gdbframe .read_var ('cframe' )
1805
+ if cframe is None :
1806
+ return None
1807
+ frame = PyFramePtr (cframe ["current_frame" ].dereference ())
1808
+ if frame and not frame .is_optimized_out ():
1809
+ return frame
1810
+ return None
1815
1811
except ValueError :
1816
1812
return None
1817
1813
You can’t perform that action at this time.
0 commit comments