我有一个本地Win32应用程序,它承载了CLR,使用c#作为一种复杂的"脚本"语言。
我有一个内存泄漏,我决定尝试微软的CLR分析器来调查。(我不确定泄漏是否得到了管理,希望这个工具可以帮助揭示这一点。)
然而,当我告诉CLRProfiler启动我的(本机)应用程序时,尽管我的应用程序总是在运行的第一秒左右启动CLR, CLRProfiler继续显示提示符Waiting for application to start common language runtime
,即使我的应用程序显然正在运行其托管代码。
如果CLRProfiler是由只管理的程序用来启动CLR的存根启动的,并且不能如果应用程序显式加载并启动MSCOREE.DLL
?还是我做错了什么?
或者在启动CLR时,我的本机应用程序需要做一些事情(希望简单)以使CLRProfiler与之配合?
在做了两件事之后,我让它工作了:
-
使用。net Framework 2.0版本的CLR分析器-有一个单独的。net Framework 1.1版本,这是我最初找到的。它可能无法与CLR 2.0及更高版本一起工作;和
-
在管理员帐户下运行CLR分析器和应用程序
所以,只是确认一下,是的,CLR分析器(至少Framework 2.0版本)确实适用于托管CLR的本机应用程序(它只检查托管代码,自然)