While investigating Datasette issue #1268 I found myself with a Python process that was hanging, and I decided to try running gdb
against it based on tips in Debugging of CPython processes with gdb
Here's the recipe that worked:
docker ps
- in my case it was 16197781a7b5
gdb
to work): docker exec --privileged -it 16197781a7b5 bash
gdb
and the Python tooling for using it: apt-get install gdb python3-dbg
top
to find the pid of the running Python process that was hanging. It was 20
for me.gdb /usr/bin/python3 -p 20
to launch gdb
against that process(gdb)
prompt run py-bt
to see a backtrace.I'm sure there's lots more that can be done in gdb
at this point, but that's how I got to a place where I could interact with the Python process that was running in the Docker container.
Created 2021-03-21T22:48:21-07:00 · Edit