首先保证进程运行机器上有GDB和pyrasite
# Redhat, CentOS, etc
$ yum install gdb
pip install pyrasite
找到卡住的python进程ID,然后用pyrasite-shell attach上去
# Assuming process ID is 12345
$ pyrasite-shell 12345
进入 python repl 环境,然后输入
from __future__ import print_function
import sys, traceback
for thread_id, frame in sys._current_frames().items():
print('Stack for thread {}'.format(thread_id))
traceback.print_stack(frame)
print('')

本文介绍如何在Redhat、CentOS等系统上利用GDB和pyrasite工具诊断Python进程中的死锁问题。通过安装GDB和pyrasite,找到卡住的Python进程ID,使用pyrasite-shell attach到该进程,进入Python REPL环境,进一步通过打印堆栈信息来定位死锁的具体位置。

1397


被折叠的 条评论
为什么被折叠?



