2

我有一个承载 CLR 的本机 Win32 应用程序,以使用 C# 作为一种复杂的“脚本”语言。

我遇到了内存泄漏,我决定尝试使用 Microsoft 的 CLR Profiler 进行调查。(我不确定泄漏是否得到管理,并且希望这个工具可以帮助揭示这一点,一方面。)

但是,当我告诉 CLRProfiler 启动我的(本机)应用程序时,尽管我的应用程序总是在运行的第一秒左右启动 CLR,但 CLRProfiler 继续显示提示Waiting for application to start common language runtime,即使我的应用程序显然正在运行其托管代码。

如果 CLRProfiler 是由仅托管程序用于启动 CLR 的存根启动的,而不是在应用程序显式加载和启动时,CLRProfiler 是否只能连接到 CLR MSCOREE.DLL?还是我只是做错了什么?

或者在启动 CLR 以使 CLRProfiler 与它相处时,我的本机应用程序需要做些什么(希望很简单)?

4

1 回答 1

1

在做了两件事之后,我得到了它的工作:

  1. 使用 CLR Profiler 的 .NET Framework 2.0 版本 - 有一个单独的 .NET Framework 1.1 版本,这是我最初发现的版本。它可能不适用于 CLR 2.0 及更高版本;和

  2. 在管理员帐户下运行 CLR Profiler 和应用程序。

因此,只是为了确认,是的,CLR Profiler(至少是 Framework 2.0 版本)确实适用于托管 CLR 的本机应用程序(它自然只检查托管代码。)

于 2013-04-03T20:04:42.407 回答