[Python-Dev] Decoding libpython frame information on the stack

skip at pobox.com skip at pobox.com
Thu Jun 28 18:00:14 CEST 2007


    >> Am a new subscriber to this list.  Am facing an issue in deciphering
    >> core-files of applications with mixed C and libpython frames in it.

    >> I was thinking of knowing any work that has been done with respect to
    >> getting into the actual python line (file-name.py:<line number>) from
    >> the libpython frames on the stack while debugging such core-files. If
    >> anybody knows some information on this, please let me know. I could
    >> not get any link on the web that talks about this feature.

Sorry, I missed this the first time round and just saw Dustin's reply.  The
Python distribution comes with a gdbinit file in the Misc directory.  I use
it frequently to display Python stack traces from within GDB.  Here's the
most recent copy online:

    http://svn.python.org/view/python/trunk/Misc/gdbinit?view=markup

The following commands are implemented:

    pystack - display the full stack trace
    pystackv - as above, but also display local variables
    pyframe - display just the current frame
    pyframev - as above, but also display local variables
    up, down - move up or down one C stack frame, but display Python
               frame if you move into PyEval_EvalFrame

This should all work within active sessions and sessions debugging core
files (e.g., no active process).

It needs some rework.  For instance, it assumes you're running within Emacs
and puts out lines gud can use to display source lines.  These look a little
funky when debugging from a terminal window.

Skip


More information about the Python-Dev mailing list