Estoy usando GDB para depurar un error de segmentación en mi aplicación python en Kubuntu 12.04. Supuestamente, la versión 7 de GDB tiene macros incorporadas para extraer información sobre la pila de Python (http://docs.python.org/devguide/gdb.html), pero estoy teniendo problemas para que funcione. He instalado python-dbg.
Cuando solicito un seguimiento de la pila de Python en GDB, el resultado se ve así:
(gdb) py-bt
#5 (unable to read python frame information)
#16 (unable to read python frame information)
#26 (unable to read python frame information)
...
Mi versión GDB es 7.4-2012.04-0ubuntu2, Python es 2.7.3-0ubuntu3.

En Ubuntu 16.04 logré obtener el seguimiento de la pila de Python en Python 3.5 al:
Instalación
python3-dbgypython3-dev:$ sudo apt install python3-dbg python3-devpython3-dbgEl paquete viene con una breve documentación sobre cómo usarlo,/usr/share/doc/python3-dbg/README.debugque utilizaré en el siguiente paso.Agregar un script auxiliar GDB desempaquetado
/usr/share/doc/python3.5/gdbinit.gza~/.gdbinit:zcat /usr/share/doc/python3.5/gdbinit.gz >> ~/.gdbinitAhora gdb podrá encontrar símbolos para el binario de Python y
py-btfunciona para mostrar el seguimiento de la pila de Python en gdb:fuente
pystackpero no haypy-bt. ¿Tienes idea de lo que está pasando?python 3.5a pesar de que ya he instaladopython 3.6?Tal vez esto ayude a alguien: el binario se nombra
python2.7-dbgen mi sistema Debian, proveniente delpython2.7-dbgpaquete. También instalé elpython2.7-devpaquete yapt-get source python2.7-dbg, para quegdbpudiera encontrar los archivos de origen para el intérprete de Python.Con todo esto en su lugar, logré depurar el problema con el que
SIGSEGVme encontraba: https://bugs.python.org/issue34870fuente