我有一个Python脚本在Linux服务器上运行了几个小时,为我进行一些数字计算。我想检查它的进度,因此我想看看正在执行哪一行。如果是C或C ++程序,则可以使用>附加到进程并使用检查堆栈跟踪。当然,我可以对Python解释器进程执行相同的操作,但我无法在堆栈跟踪中看到Python脚本的行。那么,如何找出当前执行的Python脚本的哪一行?
import signal
def print_linenum(signum, frame):
print "Currently at line", frame.f_lineno
signal.signal(signal.SIGINT, print_linenum)
kill
命令发送信号,如果您需要^C能够中断脚本,或者设置signal.alarm()
以定期打印信息,例如每秒一次。frame
对象的属性在此表中。gdb
来查找当前的堆栈帧并挖出它的 f_lineno
,但这似乎比它值得的麻烦多了... - kindall