步骤1:下载python-debuginfo 如果已经发现有/etc/yum.repos.d/xxx-Debuginfo.repo,就不需要下载 修改 /etc/yum.repos.d/xxx-Debuginfo.repo 将其中的 enabled=0 修改为 enabled=1 步骤2:下载gdb yum install gdb -y 步骤3: 下载debug信息包 然后执行如下命令 yum install python-debuginfo -y 如果无法下载,就执行如下命令更新yum:。 yum makecache 然后再执行: yum install python-debuginfo -y 步骤4: 连接到进程 gdb -p pid pid是指进程号,可以通过 ps -ef 查看,请替换为实际的进程号 步骤5: 打印信息 py-bt 解释: 查看当前进程的堆栈信息,这是很重要的命令,一般可以看到进程运行到哪里发生死锁或者卡住,进而可以回到python源码确定最终问题在哪里 py-list 解释: 显示python进程当前代码运行到哪里 py-locals 解释: 显示当前进程中的局部变量 py-print 解释: 打印python变量的值 用法: 例如 py-print self info threads thread <thread-num> 解释: 先查看线程信息,然后切换线程想要查看的线程 thread apply all py-list: 解释:查看所有进程执行位置 附: 另外一个可以连接到python进程的工具是pyrasite-shell,安装命令为: pip install pyrasite 用法: pyrasite-sehll pid 解释: pid是进程号。可通过ps -ef查看 参考: [1] https://devguide.python.org/gdb/ [2] https://www.jianshu.com/p/d150563f49a3 [3] https://pyrasite.readthedocs.io/en/latest/Shell.html
python 64式: 第17式、死锁或进程hang住调试方法
猜你喜欢
转载自blog.csdn.net/qingyuanluofeng/article/details/83932917
今日推荐
周排行