Chinese, Simplified subtitles

← 01ps-01 构建 my-spyder

Get Embed Code
4 Languages

Showing Revision 2 created 06/24/2014 by Fran Ontanaya.

  1. 有个想法,用trace-it函数来构建你自己的交互式调试器。
  2. 我们把它叫做我的spyder,因为他是我的简单Python调试器,
  3. 想法来自于可以捉住所有bug的蜘蛛。
  4. 我的spyder非常之简单,物如其名。
  5. 命令行调试,所以它要求你输入各种命令,
  6. 比如第70行中的这个break 命令。
  7. 运行程序,到第70行时,程序就暂停,等它停下来了,
  8. 就可以打印各个变量的值,比如,这个x,假设它的值是42.
  9. 如何做到这点呢?需要一些变量来控制调试器的工作。
  10. 首先,一个叫stepping的变量,负责控制是
  11. 沿着程序逐行执行还是一次运行到底。
  12. 我们有一堆的断点,它其实就是个映射,
  13. 从独立的行数映射到任意值,但如果映射中有个数字7的条目,
  14. 也就是说,当调试器运行到第7行时,程序将暂停。
  15. 不过根据当前设置,先做简化,有一些预先定义好的断点。
  16. 比如第9行和第14行。
  17. 我们逐行调用 trace_it函数,当然,希望调试器能暂停在
  18. 是断点的那几行代码上,或我们逐行地执行的时候。
  19. 我们想读取这些全局变量,所以需要声明一下。
  20. 如果这个事件是运行到了新的一行,我们要检查是逐步运行,
  21. 或是当前行能对应到我们的断点字典中,
  22. 如果符合的话,我们就输出适当的论断信息,
  23. 能帮助到调试员--发生了什么,现在在哪里,
  24. 当前执行的函数以及局部变量。