File tree Expand file tree Collapse file tree 1 file changed +7
-7
lines changed
Expand file tree Collapse file tree 1 file changed +7
-7
lines changed Original file line number Diff line number Diff line change 55----------
66问题
77----------
8- 你的程序奔溃后该怎样去调试它 ?
8+ 你的程序崩溃后该怎样去调试它 ?
99
1010----------
1111解决方案
1212----------
13- 如果你的程序因为某个异常而奔溃 ,运行 ``python3 -i someprogram.py `` 可执行简单的调试。
13+ 如果你的程序因为某个异常而崩溃 ,运行 ``python3 -i someprogram.py `` 可执行简单的调试。
1414``-i `` 选项可让程序结束后打开一个交互式shell。
1515然后你就能查看环境,例如,假设你有下面的代码:
1616
3838 20
3939 >>>
4040
41- 如果你看不到上面这样的,可以在程序奔溃后打开Python的调试器 。例如:
41+ 如果你看不到上面这样的,可以在程序崩溃后打开Python的调试器 。例如:
4242
4343::
4444
7070 print (' **** AN ERROR OCCURRED ****' )
7171 traceback.print_exc(file = sys.stderr)
7272
73- 要是你的程序没有奔溃 ,而只是产生了一些你看不懂的结果,
73+ 要是你的程序没有崩溃 ,而只是产生了一些你看不懂的结果,
7474你在感兴趣的地方插入一下 ``print() `` 语句也是个不错的选择。
7575不过,要是你打算这样做,有一些小技巧可以帮助你。
7676首先,``traceback.print_stack() `` 函数会你程序运行到那个点的时候创建一个跟踪栈。例如:
104104 pdb.set_trace()
105105 ...
106106
107- 当程序比较大二你想调试控制流程以及函数参数的时候这个就比较有用了 。
107+ 当程序比较大而你想调试控制流程以及函数参数的时候这个就比较有用了 。
108108例如,一旦调试器开始运行,你就能够使用 ``print `` 来观测变量值或敲击某个命令比如 ``w `` 来获取追踪信息。
109109
110110----------
115115你在开发的时候,也可以在你需要调试的地方插入一下 ``print() ``
116116函数来诊断信息(只需要最后发布的时候删除这些打印语句即可)。
117117
118- 调试器的一个常见用法是观测某个已经奔溃的函数中的变量 。
119- 知道怎样在函数奔溃后进入调试器是一个很有用的技能 。
118+ 调试器的一个常见用法是观测某个已经崩溃的函数中的变量 。
119+ 知道怎样在函数崩溃后进入调试器是一个很有用的技能 。
120120
121121当你想解剖一个非常复杂的程序,底层的控制逻辑你不是很清楚的时候,
122122插入 ``pdb.set_trace() `` 这样的语句就很有用了。
You can’t perform that action at this time.
0 commit comments