使用WinDbg而不是Visual Studio调试器的主要原因是什么?
它是否通常用作Visual Studio调试器的完全替代品,或者在需要时使用更多。
发布于 2008-09-19 20:35:22
如果你想知道为什么你应该使用windbg而不是Visual Studio,那么你需要阅读Advanced Windows Debugging。任何时候你需要调试一个真正丑陋的问题,windbg都有比Visual Studio更好的技术。Windbg具有更强大的脚本语言,并允许您编写DLL来自动处理困难的问题。它将安装gflags.exe,这使您可以更好地控制堆以调试内存覆盖。
你实际上不需要运行安装,你只需要复制文件就可以了。此外,它还安装了adsplus.vb,因此您可以对正在运行的进程进行微型转储。它也很容易设置来执行远程调试。没有什么比能够在自己的办公桌上调试问题,而不是对抗测试PC上闪烁的15英寸显示器更好的了。
对于日常代码编写,我使用Visual Studio,但一旦您需要从其他计算机开始调试问题或发现自己处于非常丑陋的情况下,windbg是唯一的选择。花一些时间学习windbg是一项很好的投资。另外,如果你看一下崩溃转储,你会发现有两个很棒的资源,http://www.dumpanalysis.org/blog和http://blogs.msdn.com/ntdebugging/default.aspx,它们使用windbg进行所有的调试。
发布于 2008-09-23 09:11:04
您不需要指定是调试本机代码还是托管代码。这不会影响答案,WinDbg对两者都非常有用,但许多人认为在调试.NET应用程序时,WinDbg在某种程度上不那么重要。事实并非如此。额外的好处是,您可以通过使用.NET扩展在WinDbg中调试您的.NET应用程序来了解更多关于WinDbg平台的工作原理。在WinDbg中运行(或附加到)您的.NET应用程序,然后键入...
.loadby sos mscorwks
...to请确保为所使用的CLR版本加载了正确的扩展。然后键入...
!help
..。查看SOS扩展中有哪些命令可用。
我听人开玩笑说微软只有一个开发工具,那就是WinDbg。你可能想要调试的所有东西都在那里,或者在一个扩展中。当然,这些东西的子集在VS中也是可用的,具有更友好的UI...:-)
发布于 2008-09-19 20:13:54
当我从NT4.0服务器上收到.dmp文件时,我就会用到它-- MSVC不会加载这些旧格式的文件。
https://stackoverflow.com/questions/105130
复制相似问题