[oeasy]python0007-调试程序_debug
原创
©著作权归作者所有:来自51CTO博客作者overmind1980的原创作品,请联系作者获取转载授权,否则将追究法律责任
调试程序 🥊
回忆上次内容
- 是一行行挨排解释执行的
- 程序并不是数量越多越好
- kpi也在不断演化
尝试调试
- 那 python 程序到底是怎么一步步解释执行的呢?🤔
print("1982------Guido in cwi")
print("1995------Guido in cnri")
print("2000------Guido in beopen")
print("2005------Guido in google")
print("2012------Guido in dropbox")
print("2020------Guido in microsoft")
尝试调试
-
pdb
的意思是p
ython'sd
eb
ugger🤖
逐步运行
help
- 他给了我很多的命令
- 还说可以help 一下具体 topic
- 查看你哪个topic呢?
具体帮助
list
使用命令
- 确实可以看到上下文
- ->代表着当前运行到了哪里
- 怎么往下走呢?
next
- 把1982年输出了
- 然后当前行来到了1995年
- 如何判断1995年在整个程序中的位置呢?
执行
一路next
完成调试
- 一路
next
下去 - python 解释器
- 就是这么一步步地解释执行的
- 确实是顺序执行的
- 一行行挨排儿执行的
- 我们就一步步地把bug找出来
- 就像找凶手一样!
最真实的解谜游戏
- debug是我见过最真实的解谜游戏了
- 比什么剧本杀好玩多了
- 一步步地分析
- 找不到罪魁祸首的时候
- 需要冷静地分析
- 找到罪魁祸首的时候
- 那种快乐太真实了!!!!
- 终于来到最后一行
- 如果到这里再next
- 会发生什么呢?
最后一步
- 就会返回(return)到python
- 然后返回(return)到shell
- 如果这个时候已经到了程序的尽头
- 再next会发生什么呢?
绕圈
第一个错误 bug
- 这只虫子
bug
🪰 - 飞进继电器(relay)计算机(computer)里面来
- 导致当时的继电器短路
- 管错误叫做bug
- 管调试程序错误叫做
debug
总结
- 一行行挨排解释执行的
- 我们可以
pdb3 hello.py
来对程序调试
- 程序在文本中从上到下是一行行写的
- 解释器是从上到下是一行行解释的
- 调试也是从头到尾一行行执行的