1 min read

使用pbd包进行debug

import pdbpdb.set-trace() 打个断点, 一行行运行。

Read Chapter 9—When You Don’t Even Know What to Log: Using Debuggers—of Karen Tracey’s Django 1.1 Testing and Debugging. ( Getting started with the Python debugger, pdb - Stack Overflow的285页开始,用关键词搜索找例子 )

命令 解释
break 或 b 设置断点 设置断点
continue 或 c 继续执行程序
list 或 l 查看当前行的代码段
step 或 s 进入函数
return 或 r 执行代码直到从当前函数返回
exit 或 q 中止并退出
next 或 n 执行下一行
pp 打印变量的值
help 帮助
import pdb 
a = "aaa"
pdb.set_trace() 
b = "bbb"
c = "ccc"
final = a + b + c 
print final

点击一次run后,

--Return--
> <ipython-input-9-f978fbaf6ec9>(3)<module>()->None
-> pdb.set_trace()
(Pdb) 

等待执行程序,这个时候如果按输入n且点击键盘上的enter键。

--Return--
> <ipython-input-9-f978fbaf6ec9>(3)<module>()->None
-> pdb.set_trace()
(Pdb) n
> c:\programdata\anaconda3\lib\site-packages\ipython\core\interactiveshell.py(2865)run_code()
-> sys.excepthook = old_excepthook

开始了debug。这个时候重复点击键盘上的enter键,一直debug。

--Return--
> <ipython-input-9-f978fbaf6ec9>(3)<module>()->None
-> pdb.set_trace()
(Pdb) n
> c:\programdata\anaconda3\lib\site-packages\ipython\core\interactiveshell.py(2865)run_code()
-> sys.excepthook = old_excepthook
(Pdb) 
> c:\programdata\anaconda3\lib\site-packages\ipython\core\interactiveshell.py(2881)run_code()
-> outflag = False
(Pdb) c
aaabbbccc

玩够了以后,输入ccontinue,继续执行程序,完成了。