pio*_*kuc 4 python stack-trace
我有一个Python脚本在Linux服务器上运行了几个小时,为我处理了一些数字.我想检查一下它的进度,所以我想看看现在正在执行什么行.如果那是一个C或C++程序,那么我只需附加到进程gdb -p <pid>并检查堆栈跟踪where.当然,我可以用Python解释器进程做同样的事情,但是我无法在stacktrace中看到Python脚本的行.
那么,我如何找出当前正在执行的Python脚本行?
您可以向Python脚本添加信号处理程序,将其发送到终端或文件,然后点击终端中的^ C将信号发送到进程.
import signal
def print_linenum(signum, frame):
print "Currently at line", frame.f_lineno
signal.signal(signal.SIGINT, print_linenum)
Run Code Online (Sandbox Code Playgroud)
您还可以使用其他信号并使用kill命令发送信号,如果您需要^ C能够中断脚本,或设置a signal.alarm()定期打印信息,例如每秒一次.
如果你愿意,你可以从堆栈框架打印出其他东西; 那里有很多.请参阅此表中frame对象的属性.
| 归档时间: |
|
| 查看次数: |
1739 次 |
| 最近记录: |