centos下gdb调试python的core文件

环境准备(软件运行环境用的python 2.7.18,和系统自带的2.7.5不同):

1、(生产环境)对活动的python进程号执行 gcore -o ***.core $PID ,生成core文件,将core文件传送到调试环境进行调试。

2、(调试环境)cd root; wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz

3、(调试环境)tar -zxvf Python-2.7.18.tgz

4、(调试环境)查看libpython.py 。 如find / -name libpython.py -- 以/root/Python-2.7.18/Tools/gdb/libpython.py为例

调试:

1、gdb python ***.core

2、source /root/Python-2.7.18/Tools/gdb/libpython.py

3、thread apply all py-bt

注意事项:

当软件运行环境的python A和系统自带的python B版本不同时,建议编译A时加上-g O0选项 且不要使用--enable-shared选项以静态库连接生成。否则有可能调试时会引用到系统的自带的动态库,导致部分调试信息解析不出来。(配置方法:./configure --prefix=/usr/local/python2718-debug CFLAGS="-g -O0" --enable-unicode=ucs4)

相关推荐
小-黯12 分钟前
Linux硬盘挂载脚本
linux·运维·服务器
PeaceKeeper719 分钟前
简易的arm-linux库文件移植
linux·运维·arm开发
运维帮手大橙子21 分钟前
最近面试题总结
linux·服务器·网络
黄毛火烧雪下6 小时前
【Ruby 】脚本和自动化语言 常用的内容
运维·自动化·ruby
Madison-No77 小时前
【Linux】gcc/g++编辑器 && 初识动静态库 && 程序翻译过程
linux·服务器
小白不想白a7 小时前
【shell】每日shell练习:安全日志入侵检测/系统配置文件合规检查
运维·服务器
字节逆旅8 小时前
一个从从容容,一个连滚带爬:scp 与 rsync 的不同人生
linux
洛克大航海8 小时前
Linux 中新建用户
linux·运维·服务器
位步9 小时前
在linux系统中使用通用包安装 Mysql
android·linux·mysql
dehuisun9 小时前
jenkins流水线部署springboot项目
运维·jenkins