python pdb调试以及sublime3快捷键设置

pdb调试

def test(a):
while True:
if a > 10:
break
a += 1
return a

if __name__ == '__main__':
test(1)

• python -m pdb test.py进入调试环境
• b test
在test函数处设置断点，断点号为1
(Pdb) b test
Breakpoint 1 at f:\python\pdb\test.py:1

• b 2
在第二行设置断点，断点号为2
(Pdb) b 2
Breakpoint 2 at f:\python\pdb\test.py:2

• condition 2 a7
在2号断点处设置条件 a
7
• b
显示所有断点信息
(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==7

• cl 1
去除1号断点，只有cl删除所有断点
(Pdb) cl 1
Deleted breakpoint 1

• n
单步跟踪，不进入函数
(Pdb) n
> f:\python\pdb\test.py(8)<module>()
-> if __name__ == '__main__':
(Pdb) n
> f:\python\pdb\test.py(9)<module>()
-> test(1)

• s
单步跟踪，进入函数
(Pdb) s
--Call--
> f:\python\pdb\test.py(1)test()
-> def test(a):

• c
继续运行在 a==7 条件断点处停止
• p a
此时，打印a的值为7
(Pdb) c
> f:\python\pdb\test.py(2)test()
-> while True:
(Pdb) p a
7

• a
打印所在函数参数
(Pdb) a
a = 7

• l
查看运行到某处代码
(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调试方便很多。

• Preferneces -> Key Bingdings-User进行设置
[
{
"keys": [
"f5"
],
"caption": "SublimeREPL: Python - RUN current file",
"command": "run_existing_window_command",
"args": {
"id": "repl_python_run",
}
},
{
"keys": [
"ctrl+f5"
],
"caption": "SublimeREPL: Python - PDB current file",
"command": "run_existing_window_command",
"args":
{
"id": "repl_python_pdb",