Skip to content

Latest commit

 

History

History
204 lines (143 loc) · 4.28 KB

030-1193106-调试程序_pdb3_帮助_help_求助_文档.sy.md

File metadata and controls

204 lines (143 loc) · 4.28 KB
show version enable_checker
step
1.0
true

调试程序 🥊

回忆上次内容

  • kpi也在 不断演化

图片描述

  • 写的代码Code 越多
    • 可能 出现的bug 就越多
  • 要写的是 可用的Code
    • 而不是 不可用的Bug
  • 那 什么是bug呢?

bug

  • bug 就是 程序错误
    • 比如 NameError

图片描述

  • 我们要 找到错误
    • 然后 再修复错误
  • 这就是 调试
    • debug

尝试调试

  • 想要 调试程序debug
    • 首先 得一个程序
  • 我们还是用 上次的这个 guido.py
  • 如果 上次运行的 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 粘贴

粘贴结果

图片描述

  • gg
    • 将光标 回到第一行
  • dd
    • 删除当前行

图片描述

  • 键入: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
    • 可以看到各种帮助

图片描述

  • 如何一步步向前执行呢?
  • 我们下次再说!👋