轻量级.NET调试器?
我经常需要在测试机器上调试.NET二进制文件(通过测试机器,我的意思是该机器上没有安装Visual Studio,它经常被重新映像,而不是我在其上进行开发的机器,等等)。
我喜欢Visual Studio调试器,但是将Visual Studio安装在新镜像的测试机上只是为了调试断言或者崩溃(安装时间过长,占用空间太大等)对我来说并不实用。
我真的想要一个可以快速运行的程序,它可以进入运行的进程,让我指定符号/源代码的位置,然后直接进入调试。对于本机二进制文件,windbg效果很好,但是我还没有找到任何与托管二进制文件类似的东西。有什么建议吗?
(作为旁注,我知道Visual Studios的远程调试功能,但是由于某种原因,它似乎永远无法为我工作...我经常遇到连接问题)
解决方案
总是有mdbg和cordbg,但我建议我们进一步研究为什么远程调试不能始终如一地工作。
VS2005 / 8似乎比这里的早期版本可靠得多(尽管我主要是不受管的),它使我们不必在目标计算机上访问符号。
我们可以签出MDbg:http://blogs.msdn.com/jmstall/archive/2006/11/22/mdbg-sample-2-1.aspx。看起来它至少是.NET 3.5 SDK附带的(并且可能包含在2.0+中)。
尽管我不知道它们是否允许源代码级调试,但Windbg拥有托管扩展(我相信称为SOS)。
对于比MDbg或者cordbg更好的界面,请看一下DbgCLR,它是仅处理托管代码的Visual Studio调试器的简化版本(至少看起来像一个)。它随.NET Framework一起提供(我不确定它是否在运行时中还是是否需要Framework SDK):
- http://msdn.microsoft.com/zh-cn/library/7zxbks7z(VS.85).aspx
请注意,不赞成使用cordbg,而建议使用MDbg(即使MDbg并不具备cordbg的所有功能):
- http://blogs.msdn.com/jmstall/archive/2005/11/07/views_on_cordbg_and_mdbg.aspx
在回顾写这篇文章的MDbg时,我发现有一个可用于MDbg的GUI包装器(我没有尝试过):
- http://blogs.msdn.com/jmstall/archive/2005/02/04/367506.aspx