我经常需要在测试机器上调试.NET二进制文件(通过测试机器,我的意思是机器上没有安装Visual Studio,它经常重新成像,它与我做的机器不一样发展等)。
我喜欢Visual Studio调试器,但是对于我来说,在新映像的测试机器上安装可视化工作室只是为了调试断言或崩溃(安装时间太长,占用空间太大等)是不实际的。 。
我真的很喜欢快速安装的程序,它可能会破坏正在运行的进程,让我指定符号/源代码的位置,让我直接进入调试阶段。对于原生二进制文件,windbg工作得很好,但是我没有找到任何类似于托管二进制文件的东西。有什么建议吗?
(作为旁注,我知道视觉工作室的远程调试功能,但由于某种原因,它似乎永远不会对我一致......我经常有连接问题)
答案 0 :(得分:9)
对于比MDbg或cordbg更好的接口,请看一下DbgCLR - 一个只处理托管代码的Visual Studio调试器的缩减版本(至少看起来像一个)。它附带了.NET Framework(我不确定它是否在运行时或者您是否需要Framework SDK):
请注意,不推荐使用cordbg以支持MDbg(即使MDbg没有所有cordbg的功能):
回顾编写这篇文章的MDbg,我发现有一个可用于MDbg的GUI包装器(我还没试过):
答案 1 :(得分:5)
我终于找到了Windbg的扩展,它正是我想要的:Sosex.dll,让我使用windbg调试托管应用程序,只需要很少的安装。我已经使用了一年多了,而且我遇到过的每一个调试场景都没有错误。
答案 2 :(得分:4)
答案 3 :(得分:3)
答案 4 :(得分:3)
使用 dnSpy 。
dnSpy是调试器和.NET程序集编辑器。即使没有可用的源代码,也可以使用它来编辑和调试程序集。
太好了。非常小巧轻便。无需安装或配置。 它的界面与Visual Studio完全一样。甚至其快捷方式也与VS相同。
功能:
答案 5 :(得分:1)
您可以查看MDbg:http://blogs.msdn.com/jmstall/archive/2006/11/22/mdbg-sample-2-1.aspx。看起来它至少带有.NET 3.5 SDK(它可能包含在2.0 +中)。
Windbg有托管扩展(我相信称为SOS),但我不知道它们是否允许源级调试。
答案 6 :(得分:1)
您是否尝试过使用Cracked.NET?
这是一个运行时调试和脚本工具,可让您访问计算机上运行的任何.NET桌面应用程序的内部。
答案 7 :(得分:0)
也许您可以尝试将Live Tuning与Ocf Server结合使用?
它本身不是调试器,但在应用和实时调整之间建立连接非常容易。就像,字面上3行代码。然后,您可以访问您选择发布的所有变量。
我发现在尝试调试我的程序时没有访问反编译代码或真正的调试器时它很有用。你可以真正拥有断点,但事实证明它有时候是更好的调试方法。