您对一般调试技术有何建议?我对原则和最佳实践比对特定平台解决方案更感兴趣。为了记录,我主要使用.NET(F#,C#),并涉及Haskell和Ocaml。
这些星期五晚上的其中一个晚上,我们谈到了与我的同事在步行回家的调试。我很惊讶地发现可以从VisualStudio调试器中查看和修改活动对象的状态。他还提到他认识的另一位开发人员,一位“Java大师”,曾经向他展示了一些调试魔法,并给出了一篇关于调试的文章或小册子,这对我的同事最初的“没有任何东西”的态度提出了挑战。花了更多的时间比我希望找到虫子,我也准备好迎接挑战了。你会推荐任何链接吗?
答案 0 :(得分:4)
我建议您阅读Test-driven development(TDD)上可以找到的所有内容。来自维基百科的文章:
程序员在新的上使用纯TDD (“绿地”)项目报告他们 很少有人觉得需要调用一个 调试器。
从个人的角度来看,根据我的经验,我写的单元测试越多,我在调试器中花费的时间就越少。
专门针对.NET,这是一篇关于Easier Debugging with Attributes的好文章。
答案 1 :(得分:2)
我强烈推荐David Agans的优秀书籍Debugging。
虽然不是专门针对编程,但原则是普遍的。这里的技术之一提供了我的诊断功能中最大的飞跃,即,退出您的修复程序,以证明您的修复程序已纠正问题。
答案 2 :(得分:1)
它采用原生方法(win32),但Advanced Windows Debugging是一本很棒的书。
答案 3 :(得分:1)
我喜欢Ian Taylor's。
答案 4 :(得分:1)
我研究过很多调试书和想法。可能最好的是Debugging By Thinking。我认为它涵盖了所有需要说明的东西,以合乎逻辑的方式,以易于阅读的方式。
答案 5 :(得分:1)
Tess Ferrandez的博客If broken it is, fix it you should与您在.Net调试中可能遇到的特定现实场景直接相关(通常涉及ASP.Net),更普遍的是发人深思。
John Robbins的调试books和blog同样值得一读。
Mike Stall's .Net Debugging Blog同样。
Mark Russinovich的blog非常了不起 - 他对Windows internals的了解以及出色的法医技能令人印象深刻。
答案 6 :(得分:0)
我对调试的第一次介绍是this tutorial。它使用GDB来调试示例C ++代码,但这些原则通常适用。我真正喜欢的是作者解释他可能出错的思路的方式,然后是测试可能性所需的具体命令。这很有趣!如果您不熟悉调试,那么就可以深入了解该过程。