$ python -m pdb pdb_test.py
> /Users/durban/python/practise/pdb_test.py(4)<module>()-> import math
(Pdb) list # 先停在这里,前边有"(Pdb)"提示符,输入list命令1# _*_ coding: utf-8 -*- # list命令默认只列出前11行2# version 2.7.133#4 -> import math
567 def isprime(i):
8for t in range(2, int(math.sqrt(i)) + 1):
9if i % t== 0:
10return011return1(Pdb) n
> /Users/durban/python/practise/pdb_test.py(7)<module>()-> def isprime(i):
(Pdb) l 14, 17# 使用list命令列出14到17行的脚本内容14 print('打印100-110之间的素数有:')151617for i in range(100, 110):
(Pdb) b 14# 使用b在第14行设置断点Breakpoint 1 at /Users/durban/python/practise/pdb_test.py:14 # 返回断点编号1(Pdb) b isprime # 在函数isprime上设置断点Breakpoint 2 at /Users/durban/python/practise/pdb_test.py:7 # 返回断点编号2(Pdb) c # 使用c命令运行脚本> /Users/durban/python/practise/pdb_test.py(14)<module>()# 停在断点1处,即第14行-> print('打印100-110之间的素数有:')(Pdb) c # 使用c命令继续运行脚本打印100-110之间的素数有: # 第14行脚本输出> /Users/durban/python/practise/pdb_test.py(8)isprime()# 停在断点2处,即isprime函数处-> for t in range(2, int(math.sqrt(i)) + 1):
(Pdb) b 17# 在17行设置断点Breakpoint 3 at /Users/durban/python/practise/pdb_test.py:17 # 返回断点编号3(Pdb) disable 2# 禁用断点2,即isprime函数处的断点(Pdb) c # 继续运行脚本> /Users/durban/python/practise/pdb_test.py(17)<module>()# 停在断点3处,即第15行-> for i in range(100, 110):
(Pdb) print i # 使用print打印变量i的值100(Pdb) print(i)100(Pdb) c # 继续运行断点101> /Users/durban/python/practise/pdb_test.py(17)<module>()# 停在断点3处,即第17行-> for i in range(100, 110):
(Pdb) p i # 使用p打印变量i的值101(Pdb)enable2# 恢复断点2,即isprime函数处的断点(Pdb) c # 继续运行脚本> /Users/durban/python/practise/pdb_test.py(8)isprime()# 停在断点2处,即isprime函数处的断点-> for t in range(2, int(math.sqrt(i)) + 1):
(Pdb) n # 单步执行下一语句> /Users/durban/python/practise/pdb_test.py(9)isprime()-> if i % t== 0: # 停在下一语句处(Pdb) p t # 使用p打印变量t的值2(Pdb) cl # 清楚所有断点,输入y确认Clear all breaks? y
(Pdb) c # 继续运行脚本103105107109The program finished and will be restarted # 脚本运行结束,回到开始处> /Users/durban/python/practise/pdb_test.py(4)<module>()-> import math
(Pdb) q # 使用q命令退出pdb
pdb_test.py文件代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# _*_ coding: utf-8 -*-# version 2.7.13#importmathdefisprime(i):fortinrange(2,int(math.sqrt(i))+1):ifi%t==0:return0return1print('打印100-110之间的素数有:')foriinrange(100,110):ifisprime(i):print(i)