问题
你的程序崩溃后该怎样去调试它?
解决方案
如果你的程序因为某个异常而崩溃,运行python3 -i someprogram.py可执行简单的调试。 -i 选项可让程序结束后打开一个交互式shell。 然后你就能查看环境,例如,假设你有下面的代码:
# sample.py
def func(n):
return n + 10
func('Hello')
运行 python3 -i sample.py会有类似如下的输出:
bash % python3 -i sample.py
Traceback (most recent call last):
File "sample.py", line 6, in
func('Hello')
File "sample.py", line 4, in func
return n + 10
TypeError: Can't convert 'int' object to str implicitly
>>> func(10)
20
>>>
如果你看不到上面这样的,可以在程序崩溃后打开Python的调试器。例如:
>>> import pdb
>>> pdb.pm()
> sample.py(4)func()
-> return n + 10
(Pdb) w
sample.py(6)()
-> func('Hello')
> sample.py(4)func()