Debugging with gdb: pystack macro for gdb to show python stack trace

Timothy Madden terminatorul at gmail.com
Thu Sep 17 07:47:26 EDT 2009


Timothy Madden wrote:
> Hello
>[...]
> 
> Can I get the python stack trace working under gdb ?
>[...]

Ok I found some other gdb macros on linked from the wiki page and I had 
to change them to get the stack trace work.

I had to change the symbol PyEval_EvalFrame to PyEval_EvalFrameEx and 
then I could see the stack trace. The resulting gdb macro was:

define pbt
  set $i = 0
  set $j = 0
  while $i < 1000
   select $i
   if $eip >= &PyEval_EvalFrameEx
    if $eip < &PyEval_EvalCodeEx
     echo c frame #
     p $i
     echo py frame #
     p $j
     set $j = $j+1
     x/s ((PyStringObject*)f->f_code->co_filename)->ob_sval
     x/s ((PyStringObject*)f->f_code->co_name)->ob_sval
     echo line #
     p f->f_lineno
    end
   end
   set $i = $i+1
  end
end
document pbt
show python backtrace
end

Thank you,
Timothy Madden



More information about the Python-list mailing list