如何调试崩溃的Python脚本

14 投票
1 回答
28107 浏览
提问于 2025-04-19 23:19

我正在帮忙调试一个Python脚本,这个脚本导致Python(2.7)崩溃。

  • 这个脚本会把一些信息记录到一个文件里,每次运行结束时记录的位置都不一样,或者说它写出来的内容总是在不同的地方。
  • 这个脚本已经有了try\catch的处理。
  • 之前这个脚本运行得很好,没有出现错误。
  • 这个脚本是在Windows 2008服务器上运行的,服务器有不少内存,运行时CPU使用率也不高。

所以我想问:

  • 有没有什么工具或方法可以帮助解决这个问题?
    • 我看到有一个可以导入的pdb模块,但不确定这是否能解决这个问题。
  • 当一个Python脚本崩溃了Python本身时,你该怎么调试呢?

GB

1 个回答

21

那么日志里没有任何异常信息吗?程序只是随机在不同的位置退出?

要查看每一条语句是如何执行的,可以使用 trace 模块:

python -u -m trace -t program.py

要在调试器中运行程序,可以使用 pdb

python -m pdb program.py

通过这两个工具,你应该能找到是程序内部的问题导致它退出。如果没有发现任何证据或规律,那可能是程序外部的因素导致它崩溃。

在Linux上,我还会尝试用 strace 来运行程序,并观察是否有内存不足的情况或段错误。不太确定在Windows上该怎么做,因为Windows没有内存不足的处理程序。

撰写回答