python pdb调试以及sublime3快捷键设置
pdb调试
如果对gdb比较熟悉的话,pdb就很容易上手。以一个demo快速了解常用的调试命令。
1 | def test(a): |
- python -m pdb test.py进入调试环境
或者python -m ipdb test.py b test
在test函数处设置断点,断点号为11
2(Pdb) b test
Breakpoint 1 at f:\python\pdb\test.py:1b 2
在第二行设置断点,断点号为21
2(Pdb) b 2
Breakpoint 2 at f:\python\pdb\test.py:2condition 2 a==7
在2号断点处设置条件 a==7b
显示所有断点信息1
2
3
4
5(Pdb) b
Num Type Disp Enb Where
1 breakpoint keep yes at f:\python\pdb\test.py:1
2 breakpoint keep yes at f:\python\pdb\test.py:2
stop only if a==7cl 1
去除1号断点,只有cl删除所有断点1
2(Pdb) cl 1
Deleted breakpoint 1n
单步跟踪,不进入函数1
2
3
4
5
6(Pdb) n
> f:\python\pdb\test.py(8)<module>()
-> if __name__ == '__main__':
(Pdb) n
> f:\python\pdb\test.py(9)<module>()
-> test(1)s
单步跟踪,进入函数1
2
3
4(Pdb) s
--Call--
> f:\python\pdb\test.py(1)test()
-> def test(a):c
继续运行在 a==7 条件断点处停止p a
此时,打印a的值为71
2
3
4
5(Pdb) c
> f:\python\pdb\test.py(2)test()
-> while True:
(Pdb) p a
7a
打印所在函数参数1
2(Pdb) a
a = 7l
查看运行到某处代码1
2
3
4
5
6
7
8
9
10(Pdb) l
1 def test(a):
2 B-> while True:
3 if a > 10:
4 break
5 a += 1
6 return a
7 if __name__ == '__main__':
8 test(1)
[EOF]quit
退出
sublime设置快捷键
sublime设置快捷键F5为运行,Ctrl+F5调试。就会对python调试方便很多。
- Package Control中下载SublimeREPL
- Preferneces -> Key Bingdings-User进行设置
1 | [ |
ipdb调试
ipdb之于pdb就像ipython之于python。ipdb是pdb的加强版,使用ipdb可以有语法高亮,自动补全等特性。