python pystack gdb macro |
2010-10-17
|
As mentioned before, I ended up getting a working pystack macro again for use in gdb. Someone commented I should make it public so here it is:
# THOMAS: the test for between Py_Main and Py_GetArgcArgv is because
# code is in that order in the C file; see Modules/main.c and its comment
# print the entire Python call stack
# same for eval in Python/ceval.c
# in 2.6, PyEval_EvalFrame is only bw compatible, and code now calls
# PyEval_EvalFrameEx
define pystack
set $__lastpc = $pc
set $__same = -1
while 1 == 1
# select the highest frame with the same $pc
# this will automatically terminate if we reach the top
while $pc == $__lastpc
up-silently
end
down-silently
if $pc > PyEval_EvalFrameEx && $pc < PyEval_EvalCodeEx pyframe else # frame end up-silently 1 set $__lastpc = $pc end select-frame 0 end
I also posted it in the upstream bug but I doubt that's going to achieve much in this case...
You may like this:
https://fedoraproject.org/wiki/Features/EasierPythonDebugging
Comment by Tom Tromey — 2010-10-19 @ 19:32