Skip to content

Latest commit

 

History

History
211 lines (148 loc) · 4.36 KB

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

File metadata and controls

211 lines (148 loc) · 4.36 KB
show version enable_checker
step
1.0
true

调试程序_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
    • 可以看到各种帮助

图片描述