调试器历史

调试器历史

第一次出现调试器(可能)

刚发展出计算机后,计算机往往是生产出一台供研究或者军事使用。1951年开始,有46台UNIVACⅠ计算机销售给不同的公司或者组织。比较有趣的是1952年哥伦比亚广播公司利用UNIVACⅠ准确预测出了当年美国总统的大选结果,使得UNIVACⅠ名声大噪[1]

UNIVACⅠ的监视控制台有写字台大小,上面布置了许多灯和开关,其中有一个名为Interrupted Operation Switch(IOS)的开关,这个开关和软件调试有着密切的关系。

IOS开关共有上下左右中五个位置,分别代表五种运行模式。中间为正常模式,在此模式下计算机连续执行内存中的指令,这个模式又被称为2连续(Continuous)模式。其他四个位置代表不同的“单步”模式,分别是:ONE OPERATION(上)、ONE INSTRUCTION(下)、ONE STEP(左)和ONE ADDITION(右),即以此执行一个操作、一条指令、一步和一次加法运算。

当设定UNIVACⅠ工作在这四种单独模式其一时,计算机每执行一条指令或者一个操作后便会停下来,让用户可以检查当前寄存器和内存状态。检查完毕后,只要按下键盘上的START BAR键便可以让系统继续执行。

Intel的发展

1971年,Intel成功推出世界上第一款微处理器4004,标志着计算机向微型化发展。1978年,x86 CPU第一代8086 CPU问世,其标志寄存器(FLAGS)中专门增加一个用于软件调试的标志位,叫做TF(Frace Flag)。

总结

从UNIVACⅠ到Intel 8086,我们清晰的看到单步执行功能从硬件上的一个按钮到CPU内部一个寄存器的转变,这种变化是符合计算机发展的,在UNIVACⅠ时,还没有完善的软件环境和调试器软件,所以使用专用按钮是合理的。在微处理器时代,软件发展迅速,操作系统和调试器也比较成熟,使用CPU内部寄存器标志位来替代专用硬件按钮不仅能够减低成本增加可靠性,还得以让调试做到程序化控制,才有了今天琳琅满目的调试器软件。

参考