如何强制python的VM打印堆栈跟踪?

spi*_*ike 8 python debugging

我正在处理一个python编写的服务器,它会锁定并停止工作,包括记录.我想知道是否有一个python相当于java的"kill -3"信号,至少打印出当前的堆栈跟踪.

gps*_*gps 7

使用faulthandler模块. https://pypi.python.org/pypi/faulthandler/

import faulthandler
faulthandler.register(signal.SIGUSR1)
Run Code Online (Sandbox Code Playgroud)

这在Python的解释器循环的C级信号处理之外工作,因此即使Python解释器本身挂起等待其他东西它也能工作.

另见:http://docs.python.org/dev/library/faulthandler


And*_*Dog 0

您可以在这个问题中找到(仅限Unix)解决方案。