调试运行进程
gdb -p pid
增加libpython来获取更多调试信息
- a)下载python2.7的源码中的Tools/gdb/libpython.py
- b)引入libpython.py
# 在gdb -p pid之后运行
(gdb) python
>import sys
>sys.path.append('/path/to/libpython.py')
>import libpython
>end
(gdb)
- c)之后可使用命令
注:python2.6的源码中提供了部分预定义函数以便大家使用gdb调试,我们只需将文件Python-2.6/Misc/gdbinit所包括的内容加入到用户目录下的.gdbinit文件中即可,这样每次启动gdb时会自动完成这些宏的定义。但可惜的是Python2.6.2 gdbini对于pylocals的定义居然有错误, 看来是没有随着代码的更新而同步更新。我们只需将 while $_i < f->f_nlocals修改为 while $_i < f->f_code->co_nlocals即可。py-bt py-bt-full py-down py-list py-locals py-print py-up