调试程序_debug_next_下一步_list_pdb3

调试程序_debug_next_下一步_list_pdb3  ????

回忆上次内容

  • py程序是 按 顺序执行

    • 是一行行 挨排 执行

  • 程序员的kpi

    • 曾经 根据 代码数量

    • 现在kpi 也在 不断演化

    • 并不是 代码量 越多越好

  • 写的代码(Code) 越多

    • 可能 出现的bug 就越多

  • 要的是 可用的Code

    • 而不是 不可用的Bug

  • 那 什么是bug 呢?

bug

  • bug 就是 程序错误

    • 比如 NameError

  • 要 找到错误

    • 然后 修复错误

  • 这就是 调试

    • debug

尝试调试

  • 想要 在程序里 debug

    • 首先 得一个程序

    • 还用 上次的 guido.py

  • 如果 上次的 没了

    • 就复制 下面这个

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”)

  • 然后粘贴到

    • 网上系统的 剪贴板上

  • 保存 在线剪贴板

准备环境

  • 在shell中 键入

    • vi guido.py

  • :reg

    • 执行底行命令reg

    • 观察寄存器register的状态

  • 系统寄存器"*"+

    • 都存着 刚复制的 源代码

粘贴代码

  • 回车 继续

    • 从 底行命令模式

    • 回到 正常模式

  • 在vim正常模式下

    • 出现”+字样

    • 使用的寄存器 是

    • 系统剪贴板 寄存器

    • “+

    • 键入”+

    • 观察窗口底行

  • 然后 键入p

    • paste 粘贴

粘贴结果

  • 键入:wq

    • 保存并退出vim

    • 回到shell

运行程序

python3 guido.py

  • 原来 是一下子 运行到最后

    • 现在可以  逐行 调试运行 吗?

调试程序

  • 调试的意思是

    • 看有没有错误(bug)

    • 一行行地执行

pdb3 guido.py

  • 使用pdb3来进行调试

    • pdb的意思是python’s debugger

  • bug 是 虫子

    • 在编程中 指的是错误

  • de 是 降低 减少

    • decrease

    • defame

    • decolor

    • decline

  • debug 是 祛除虫子

    • 减少错误

    • 在编程中 指的是

    • 需要 逐行进行调试

  • 为什么 要逐行调试呢?

逐步调试

  • 由于程序 不知道 哪里出的问题

    • 所以才 逐步来执行

  • 逐步调试运行的目的

    • 找到 bug所在的位置

    • 还原当时的犯罪现场

    • 也就是 debug

  • 我们这就去 debug

help

  • 进入 pdb3 guido.py

    • 就喊 救命????(help)

    • 不知道 怎么办

  • help 给了

    • 很多的 命令主题(topic)

    • 还说 可以help 一下具体 命令主题

  • 查看哪个命令主题呢?

具体帮助

  • 先查看

    • 关于 help命令的 帮助

    • 对着 help 喊救命????(help)

  • 没有参数 的 话

    • 显示 所有 命令的帮助

  • 1个参数  help

    • 显示 help 这个参数的帮助

缩略形式

  • h(elp) 的缩写是 h

    • elp 可以省略

  • 以上四句

    • help 这个主题命令

    • 都可以查看

  • 这并不难 h h

    • 感觉掌握帮助系统了

    • 还可以怎么玩呢?

总结

  • 进到调试环境 没有思路

    • 就喊救命help

    • 可以看到各种帮助

  • 如何一步步向前执行呢?

  • 我们下次再说!????

  • 蓝桥->https://www.lanqiao.cn/courses/3584

  • github->https://github.com/overmind1980/oeasy-python-tutorial

  • gitee->https://gitee.com/overmind1980/oeasypython

资源下载: