我有一个托管CLR的本机Win32应用程序,使用C#作为复杂的“脚本”语言。
我有内存泄漏,我决定尝试微软的CLR Profiler进行调查。 (我不确定泄漏是否得到管理,并希望这个工具可能有助于揭示这一点。)
然而,当我告诉CLRProfiler启动我的(本机)应用程序时,尽管我的应用程序总是在运行的第一秒左右启动CLR,但CLRProfiler继续显示提示符Waiting for application to start common language runtime
,即使我的应用程序是显然运行托管代码。
如果CLRProfiler是由仅托管程序用来启动CLR的存根启动的,那么它是否能够连接到CLR;如果应用程序显式加载并启动,则不 {{1> }}?或者我只是做错了什么?
或者,在启动CLR以使CLRProfiler与它相处时,我的本机应用程序需要做些什么(希望很简单)?
答案 0 :(得分:1)
在完成两件事之后,我开始工作了:
使用.NET Framework 2.0版本的CLR Profiler - 有一个单独的.NET Framework 1.1版本,这是我最初找到的版本。它可能不适用于CLR 2.0及更高版本;以及
在管理员帐户下运行CLR Profiler和应用程序。
所以,只是为了确认,是的,CLR Profiler(至少是Framework 2.0版本)适用于托管CLR的本机应用程序(当然,它只检查托管代码。)