调试程序 🥋
回忆上次内容
-
进到调试环境 没有思路
- 就喊救命help
- 可以看到各种帮助
- 如何一步步向前执行呢?
list
-
l(ist)
- 可以列出 上下文11行的程序
- 缩写是l
多次列表
-
l只能查看一次程序列表
-
因为原来都是电传打字机
- 在当前位置
- 打出来之后
- 就不再打印了
-
-
如果 l .
- 就会围绕着当前行(.)
-
如果 l n
- 就会显示从n之后的11行
-
这两种方式
- 可以多次反复查看
完整代码
-
ll
- 可以查看全部代码
-
以上三种查看方式
- 可以在同一位置上多次查看
使用命令
- 当前行前面 有个箭头 ->
-
确实可以 看到上下文
-
->代表着 程序
当前行
的位置- 怎么 往
下一行
走呢?
- 怎么 往
-
next
-
n(ext)
-
可以 往下走一行
- 缩写是n
-
- 试一下
-
把1982年输出了
- 然后
当前行
来到了1995年
- 然后
-
如何判断 1995年
- 在 整个程序中的位置 呢?
执行
-
l(ist)
-
可以列出
当前行
的上下文- 找到 当前行的位置
-
-
在 第2行
-
执行 next 命令
- 就会输出
1995-----Guido in cnri
- 然后
箭头(->)
跳转到 第3行 - 准备 接下来 继续执行 第3行
- 就会输出
-
-
当然 也可以
一路next
下去
一路next
一路next
完成调试
-
一路next
下去- python 解释器 就是
- 这样 一步步地
解释执行
py程序 的
-
是
顺序
执行 每行代码的- 一行行 挨排儿执行的
-
终于来到 最后一行
-
如果 到这里 再next
- 会发生什么呢?
-
最后一步
-
执行完 最后一句之后
- 就会 --return--
-
这个时候
- 已经到了 程序的尽头
- 再
next
会发生什么呢?
绕圈
-
到头了 就又重来
- 就会再从头执行 这个文件
- 就重新开始了
- 从头开始了
退出pdb3
-
查询帮助
-
pdb3 的帮助系统
- 可以实时互动
-
-
什么不会了
- 可以直接和pdb3交互
- 现场就可以给出解释
-
q退出pdb3
- 回到shell
总结
-
py文件
是 按照顺序- 一行行 挨排 解释执行的
-
可以用
pdb3 hello.py
- 来调试程序
-
顺序执行
-
程序 在文本中 从上到下 是
- 一行行写的
-
解释器 从上到下 是
- 一行行解释的
-
调试 也是 从上到下
- 一行行 调试的
-
-
bug这个东西
- 是什么时候才有的呢?
-
最早那只 活的
bug
🪰- 是
谁
找出来的 呢?🤔
- 是
- 我们下次再说!👋