pdb调试Python脚本

一 运行语句实例
  1. >>>import pdb
  2. >>> pdb.run('''''')
  3. ><string>(1)<module>()
  4. (Pdb) q
  5. >>> pdb.run('''
  6. for i in range(0,3):
  7. i = i ** 2
  8. print(i)
  9. ''')
  10. ><string>(2)<module>()
  11. (Pdb) n
  12. ><string>(3)<module>()
  13. (Pdb)print(i)
  14. 0
  15. (Pdb) n
  16. ><string>(4)<module>()
  17. (Pdb) p i
  18. 0
  19. (Pdb) n
  20. 0
  21. ><string>(2)<module>()
  22. (Pdb) p i
  23. 0
  24. (Pdb) n
  25. ><string>(3)<module>()
  26. (Pdb) p i
  27. 1
  28. (Pdb)continue
  29. 1
  30. 4
 
二 运行表达式实例
  1. >>>import pdb
  2. >>> l =[1,2,3]
  3. >>> pdb.runeval('l[1]')
  4. ><string>(1)<module>()
  5. (Pdb) n
  6. --Return--
  7. ><string>(1)<module>()->2
  8. (Pdb) pdb.runeval('l[2]')
  9. 3
  10. (Pdb) pdb.runeval('3+5*6/2')
  11. 18.0
 
三 运行函数
  1. >>>import pdb
  2. >>>def sum(*args):
  3. r =0
  4. for arg in args:
  5. r = r + arg
  6. return r
  7. >>> pdb.runcall(sum,1,2,3,4)
  8. ><pyshell#20>(2)sum()
  9. (Pdb) n
  10. ><pyshell#20>(3)sum()
  11. (Pdb) n
  12. ><pyshell#20>(4)sum()
  13. (Pdb)print(r)
  14. 0
  15. (Pdb) n
  16. ><pyshell#20>(3)sum()
  17. (Pdb) p r
  18. 1
  19. (Pdb) c
  20. 10
 
四 设置硬断点
  1. debug.py
  2. import pdb
  3. pdb.set_trace()
  4. for i in range(0,5):
  5. i = i*5
  6. print(i)
 
运行结果:
  1. > e:\python\work\pydebug.py(3)<module>()
  2. ->for i in range(0,5):
  3. (Pdb) list
  4. 1import pdb
  5. 2 pdb.set_trace()
  6. 3->for i in range(0,5):
  7. 4 i = i*5
  8. 5print(i)
  9. [EOF]
  10. (Pdb)continue
  11. 0
  12. 5
  13. 10
  14. 15
  15. 20
 

猜你喜欢

转载自cakin24.iteye.com/blog/2383523