Saturday, February 24, 2018
Stepping through a running Python program through gdb
Stepping through a running Python program through gdb
The main part is that you need to have your custom Python and gdb build. The Ubuntu Python version has compiler optimizations removed, which makes it difficult to use. Youll also need to install all your package dependencies using the virtual environment that youve setup.
1. Build your own custom Python version. Instructions are here.
2. If youre using Ubuntu 14.04, you need to compile your own gdb too, since the one that comes is linked to Python 3:
a. Download the source from https://launchpad.net/ubuntu/+source/gdb/7.6.1-0ubuntu3.
b. sudo apt-get install libncurses5-dev texinfo
c. ./configure --with-python=python2 --prefix=/home/rhu/special (or wherever you intend to do make install).
d. make install
3. Locate the libpython.py from your Python install.
a. sudo /home/rhu/special/bin/gdb -p <python process>
b. python
sys.path.insert(0, "/home/rhu/projects")
import libpython
You should now be able to do py-up, py-down, py-list, py-locals to step through the various call stacks.