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)

相关推荐
HalvmånEver4 小时前
Linux:线程互斥
java·linux·运维
番茄灭世神4 小时前
Linux应用编程介绍
linux·嵌入式
wdfk_prog4 小时前
[Linux]学习笔记系列 -- [drivers][mmc][mmc_sdio]
linux·笔记·学习
Forsete4 小时前
LINUX驱动开发#9——定时器
linux·驱动开发·单片机
JY.yuyu4 小时前
Docker常用命令——数据卷管理 / 端口映射 / 容器互联
运维·docker·容器
森G5 小时前
七、04ledc-sdk--------makefile有变化
linux·c语言·arm开发·c++·ubuntu
驱动探索者5 小时前
linux mailbox 学习
linux·学习·算法
lpruoyu5 小时前
【Docker进阶-06】docker-compose & docker swarm
运维·docker·容器
China_Yanhy6 小时前
入职 Web3 运维日记 · 第 8 日:黑暗森林 —— 对抗 MEV 机器人的“三明治攻击”
运维·机器人·web3
艾莉丝努力练剑6 小时前
hixl vs NCCL:昇腾生态通信库的独特优势分析
运维·c++·人工智能·cann