似乎微软生产了许多调试器和调试工具,它们创造了一个关于应用哪种工具以及何时应用的迷宫。例如,有windbg - 以及Visual Studio中内置的调试器。两者都可以访问小型转储。为什么我会选择一个而不是另一个?
博士。 Watson是过去默认的事后崩溃分析工具。它现在已被“问题报告和解决方案”所取代。哪个更换为服务器上的IIS异常监视器?也许所有这些都建立在“Microsoft CDB Debugger”之上,或者这可能是另一个重复的工具?另一个ADPlus是基于CDB调试器构建的。迷宫似乎无休止地继续下去。
有人可以提供所有这些工具的分类法或路线图的链接,其中的评论被弃用(Dr.Watson?)以及调试学生应该吸收的“工具方向”?我敢肯定,我在这里没有提到过许多工具和基础库。知道它们之间的依赖关系(例如使用CDB调试器的ADPlus)会很高兴。
我发现this link有帮助,因为它回答了我要问的一些问题 - 尽管材料已经过时了。是否有其他资源可以提供类似简单的比较/对比度减少?
答案 0 :(得分:4)
CDB and NTSD之间没有区别,除了它们如何产生新窗口。选择何时在命令行调试器上使用Visual Studio有时是个人选择的问题,但有时命令行是一个更好的工具。一旦熟练使用命令行调试器,就可以更快地完成任务。我怀疑有一些场景仍然只能用命令行调试器调试特定问题,但我想不出任何副作用。你错过的第三个调试器是kd,它是内核调试器。如果你想调试内核模式的东西(即你写的设备驱动程序),它真的是你唯一的选择。
CDB,NTSD和KD都是debugging tools for Windows的一部分,它本身就是DDK的一部分。 Visual Studio不依赖于其他调试包,反之亦然。
Watson等不是调试器。他们只是观察和报告。我怀疑最好的建议是使用适合你的问题的任何一个。我的意思是,有很多工具可用于各种不同的MS技术。例如。 Orca用于MSI数据库。所有这些产品都是不相关的,经常由不同的部门发布和维护,等等。因此,我怀疑你会找到一个显示他们之间关系的图表,因为它们是如此多样化。