How to use gdb python debugging extension inside virtualenv

I've solved the problem by using strace on gdb, grepping the "open" syscalls.

It seems that gdb makes a search for python-gdb.py in several paths it guesses (according to the python binary), and whenever the file is not found it just fails silently.

Eventually the way to solve the problem is to link /usr/lib/debug/usr/bin/python2.7-gdb.py into the env's bin directory. The name of the link should be <python binary name>-gdb.py, being in my case python2.7-dbg-gdb.py (...).

After that, everything seems to work.


@itai's answer only partially worked for me on Ubuntu Trusty (14.04). I found a couple of other things worked better:

sudo apt-get install python2.7-dbg

then, in the virtualenv:

. bin/activate
mkdir bin/.debug
ln -s /usr/lib/debug/usr/bin/python2.7-gdb.py bin/.debug/python-gdb.py
ln -s /usr/lib/debug/usr/bin/python2.7 bin/.debug/

gdb --args bin/python2.7 ...

This helped gdb find the python debugging symbols as well as the py-bt etc commands.