25 debugging
SO 上有很多功课问题.
我猜想可以通过在调试器中单步执行代码并观察程序/变量状态来解决90%以上的问题.
我从未被教过使用调试器.我只是打印并阅读了GDB手册并逐步完成了他们的示例.当我第一次使用Visual Studio时,我记得想,哇!这可以多么简单,单击设置断点,鼠标悬停在变量上的值,按键步骤,立即窗口,debug.print等...
无论如何,学生是否"被教导"使用调试器?如果没有,为什么不呢?(或许更好的问题是,为什么他们不能学会自己使用调试器......也许他们需要被告知有这样的工具可以帮助他们......)
学习使用调试器需要多长时间?
Meh*_*ari 27
我不认为问题在于教学.使用现代图形调试器并不是火箭科学(至少不适用于在单台计算机上运行的大多数用户模式程序).问题在于一些人的态度.为了有效地使用调试器,您应该:
select并没有被打破.没有多少非程序员有这些态度.在大学期间,我见过许多朋友在相对较短的时间内放弃并给我带来一些代码并告诉我计算机出错了.我经常告诉他们我比他们更信任他们的电脑(这会伤害一些感情,但就是这样).
如果说学生是计算机科学专业的学生,我认为答案是显而易见的。课程的主题通常是理论,并以编程语言/框架/库为辅助。教授不能对某个特定工具进行深入研究,因为这将使他从教网络或系统等方面的时间中解脱出来。也许如果有一门名为“真实世界编程”的课程或类似的课程,他们会介绍调试器,但是总的来说,我期望学生阅读语言/工具文档以完成课程工作并没有太大的错。 。
如果我没记错的话,调试器是在我的第二年Intro to C课程中介绍的.当然,大多数学生在这一点上都在努力解决的问题是让他们的工作进行编译,这是调试人员无法帮助的.一旦他们的十行命令行程序编译然后崩溃,那么他们已经有了一些printfs.争取掌握GDB是过度的.
根据我的经验,实际上处理一个足够大的代码库是非常罕见的,因为它不仅仅是粗略地熟悉一个调试器,而且值得投入大多数Comp.科学课程.程序很小,您遇到的问题更多的是找出算法的时空复杂性.
调试器在现实世界的项目中变得更有价值,在这些项目中,你有不同的人在不同的时间编写了大量的代码来跟踪,以找出在调用bar()之前保持froo的foo.
| 归档时间: |
|
| 查看次数: |
7686 次 |
| 最近记录: |