Update PyEval_EvalFrame to PyEval_EvalFrameEx. This looks to have been done

partially before.  Also add a comment describing how this might have to work
with different versions of the interpreter.
This commit is contained in:
Skip Montanaro 2010-01-14 01:12:34 +00:00
parent d2a9940acb
commit 852a27db96
1 changed files with 9 additions and 3 deletions

View File

@ -115,12 +115,18 @@ end
# interpreter, but the test can be extended by an interested party). If
# Py_Main <= $pc <= Py_GetArgcArv is true, $pc is in Py_Main(), so the while
# tests succeeds as long as it's not true. In a similar fashion the if
# statement tests to see if we are in PyEval_EvalFrame().
# statement tests to see if we are in PyEval_EvalFrameEx().
# Note: The name of the main interpreter function and the function which
# follow it has changed over time. This version of pystack works with this
# version of Python. If you try using it with older or newer versions of
# the interpreter you may will have to change the functions you compare with
# $pc.
# print the entire Python call stack
define pystack
while $pc < Py_Main || $pc > Py_GetArgcArgv
if $pc > PyEval_EvalFrame && $pc < PyEval_EvalCodeEx
if $pc > PyEval_EvalFrameEx && $pc < PyEval_EvalCodeEx
pyframe
end
up-silently 1
@ -131,7 +137,7 @@ end
# print the entire Python call stack - verbose mode
define pystackv
while $pc < Py_Main || $pc > Py_GetArgcArgv
if $pc > PyEval_EvalFrame && $pc < PyEval_EvalCodeEx
if $pc > PyEval_EvalFrameEx && $pc < PyEval_EvalCodeEx
pyframev
end
up-silently 1