我有一个崩溃(看似)不可预测的脚本。我无法弄清楚如何重现它。
Python是否保留了全局系统日志文件,因此我可以回过头来看一下导致退出的异常?如果是这样,在Windows上哪里可以找到它?如果可能,我希望能够看到追溯。
编辑:我知道我可以将整个脚本放在try...except
块中,但我不知道我将在多长时间内运行它在它再次崩溃之前。我希望能够至少获得一些关于已经发生的崩溃的粗略信息,即使这些信息只是导致崩溃的异常类型。这样我就可以尝试更可靠地重现bug。
我怀疑崩溃是由与外部设备的通信失败引起的(也许是一条简单的松散电缆)。这些类型的失败基本上是随机的,难以重现,所以我想知道这是通信错误还是真正的代码错误。
答案 0 :(得分:0)
如果您想了解有关例外的信息,可以使用此代码。
try:
#do some stuff
1/0 #stuff that generated the exception
except Exception as ex:
print ex
raw_input()
为了正确调试,有一个工具winpdb。有一个非常好的教程可供它学习使用debugging tutorial
进行调试答案 1 :(得分:0)
你能“抓住”exception
吗?如果是,则可以使用traceback
打印堆栈跟踪并查明问题发生的位置。
然后你可以使用Eclipse来调试有问题的模块(即使它是python lib的一部分,它将以简单的可读形式)。
import traceback
...
...
try:
<your script>
except Exception as runtime_ex:
print runtime_ex, traceback.format_exc()