近期,用python写了一个爬虫,由于中间的操作步骤很多,经常有线程Hang住,经过百度与Google,发现GDB现在7.0以上版本支持对Python源码进行debug。
但是Centos上面,只有有限的几个Python版本支持debug,前提是yum库中拥有python-debuginfo安装包。
有几个关键环节
-
下载libpython.py
下载路径https://github.com/python/cpython/blob/master/Tools/gdb/libpython.py -
载入libpython
查找python程序进程ID,启用gdb -p pid后,执行以下命令,导入libpython
(gdb) python
> import sys
>sys.path.insert(0, ‘/path/to/libpython.py’ )
> import libpython
>end
(gdb)
- Python堆栈查看
查看所有Python线程的堆栈情况
(gdb) thread apply all py-list
查看当前线程堆栈
py-bt
查看当前线程代码
py-list