如何调试崩溃python的python脚本

Ger*_*ton 9 python crash debugging python-2.7

我正在尝试帮助调试导致python(2.7)本身崩溃的python脚本.

  • 该脚本将一些信息记录到文件中,并在每次运行时以不同的停止结束,或者至少它写出的信息位于不同的位置.
  • 该脚本已经有一个try\catch的.
  • 该脚本以前没有错误地工作过
  • 这是在Window 2008服务器上,具有相当大的RAM,并且在运行时CPU使用率不高.

所以我的问题:

  • 是否有可以提供帮助的工具或技术?
    • 我看到有一个我可以导入的pdb模块,但不确定这是否有助于解决这个问题.
  • 当py脚本崩溃python本身你会如何调试?

GB

Ste*_*lla 9

那么日志中没有例外吗?它只是随机退出不同的地方?

要查看执行时的每个语句,请使用跟踪模块:

python -u -m trace -t program.py
Run Code Online (Sandbox Code Playgroud)

要在调试器中运行该程序,请使用pdb:

python -m pdb program.py
Run Code Online (Sandbox Code Playgroud)

有了这两个,你应该能够看到它是否在程序中导致它退出.如果你没有看到任何证据或模式,那么它可能是程序之外的东西导致它死亡.

在Linux上我也会尝试运行该程序,strace并观看OOM杀手.不确定Windows中会有类似的步骤(Windows没有OOM杀手).