Gdb python进程调试指南
gdb -quiet -batch -ex='thread apply all bt' -p pid > xxx
gdb -quiet -batch -ex='thread apply all py-bt' -p pid > xxx
本文档介绍如何使用gdb 跟踪调试运行中的python进程,分两部分: 工具安装和调试;
第一部分:工具准备,版本要求:gdb要求7.x以上版本
1、安装与python 解释器版本对应的debug 包
如果没有对应debug包,请按照:
2、查找python 调试用libpython.py 或*.debug-gdb.py(上述debug包安装后为degbug-gdb.py)
命令: find / -name *libpython*
3、在/root 目录添加gdb 初始化文件.gdbinit:
命令: vi ~/.gdbinit
编辑输入如下内容:
source /usr/lib/debug/usr/lib64/libpython2.7.so.1.0.debug-gdb.py
第二部分: 命令介绍及使用(命令详细介绍,请见*.debug-gdb.py)
- 开始测试:调试某个运行的进程
- 进入调试(以agent的进程为例子):gdb python pid
2)、查看调用栈:py-bt
3) 进入某个栈帧:f 帧号
4)查看变量:py-print
5)显示当前栈帧执行文件的python 代码:py-list lineNumber
6)移动到上一个或下一个栈帧:py-up/py-down
7)打印当前栈帧所以局部变量:py-locals
附: 命令详细介绍请查看libpython.py或*.debug-gdb.py