Python使用gdb进行debug的方法

准备工作:

1、必须安装gdb,一般系统默认安装过了,未安装的根据系统使用不同命令安装,比如 yum install gdb,也可以用rpm命令进行安装

2、必须有一个携带符号表的Python,版本与要定位的问题Python版本相同,可以用yum安装,也可以直接下载。

这里,我下载了一个release的Python,同时下载了一个对应版本的符号表debug包。然后将debug包中的output中的*.dbg拷贝至python解压目录的bin下即可。

3、下载对应版本的libpython.py文件(可选)

该文件可以将C的堆栈转换为Python的堆栈,更方便问题定位。可以从Python源码包的Tools/gdb/libpython.py找到。版本必须相同。

 

调试已有进程,假设进程号为12345

gdb /home/tuzkee/Python-3.9.2/bin/python 12345

/home/tuzkee/Python-3.9.2为Python的路径,版本必须与12345使用的Python版本一致,bin下面必须用前面的方式安装了dbg文件

启动成功后,就可以正常使用gdb命令了

如果想把C的堆栈转换为Python堆栈,可以先执行

source /home/tuzkee/libpython.py

然后就可以执行py-bt命令了

更多的py开头的命令可以敲入py后双击tab联想出来

 

posted @ 2022-08-30 10:16  鸪斑兔  阅读(697)  评论(0编辑  收藏  举报