2012-06-18 32 views
4

我有一个COM应用程序,它实际上是一个PowerPoint的加载项。在以前的版本中,它使用了.NET 2.0及更高版本,.NET 3.5(它们都具有相同的CLR版本)。我习惯WinDbg和CDB来调试我的.NET应用程序,纯粹是为了例外。它很好地工作...但是,现在,我已经使用.NET框架为我的最新版本不工作!用于.NET 4.0的独立.NET CLR调试器?

有谁知道一个相当直接和轻量级的.NET 4.0调试器,这将类似于WinDbg?我明白微软不再支持.NET 4.0的CLR调试,但为什么?

此外,任何人都可以知道我可以用来调试我的应用程序的任何其他“轻量级”方法吗?它安装在数百台机器上,安装VS2010不幸是一种选择!

欣赏任何输入。

迈克

+0

'了解微软不再支持.NET 4.0的CLR调试,但为什么?'这是不正确的。使用SOS/PSSCOR进行CLR调试适用于v4。 – vcsjones

+0

@vcsjones是独立的,可以像WinDbg一样从USB运行? – DerekP

+0

为什么Visual Studio不是一个选项? –

回答

1

我不知道你所说的WinDbg不能调试.NET 4的意思为绝对支持。 SOS,PSSCOR和SOSEX都可以使用.NET 4.

但是请记住,.NET运行时DLL在.NET 4中已从mscorwks重命名为clr,因此当您加载SOS时,您必须执行.loadby sos clr.loadby sos mscorwks

+0

并使用v4.0.30319版本的sos.dll。它已经知道clr.dll –

+0

@HansPassant:那么,你需要使用框架附带的SOS版本。 '.loadby'命令只是从与运行时相同的位置获取扩展名。如果框架位置是路径的一部分,'.load'也可以正常工作。 –

+0

@BrianRasmussen我仍然在调试.NET 4.0时遇到问题。我知道我正在制造一个例外。我的脚本如下所示:'“%〜dp0cdb.exe”-pn EXCEL.exe -c“.loadby sos clr; sxi *; sxi av; sxe -c \”!clrstack;!pe; .echotime; .echo * **; g; \“clr; g;” >“%USERPROFILE%\ Desktop \ 4MQ_log.txt”任何想法为什么这不起作用?我可以让日志创建,但它不能识别任何我想故意创建的概念! – DerekP