Tim*_*tei 3 .net profiler clr-profiling-api
我为.NET应用程序编写了一个小型分析器.它使用ICorProfilerCallback2界面.
分析器附加并适用于.NET 2.0应用程序,但不适用于.NET> 2.0(3.0,3.5,4.0).当我启动使用.NET 4.0编译的exe时没有任何反应,但是对于.NET 2.0,启动程序启动.我在运行托管exe之前设置了以下变量
@Echo off
set Cor_Enable_Profiling=0x1
set COR_PROFILER={67D8965A-8686-2639-9C24-E1F7D13EE105}
set COR_PROFILER_DLL=e:\Debug\Profiler.dll
set COR_PROFILER_PATH=e:\Debug\Profiler.dll
Run Code Online (Sandbox Code Playgroud)
知道为什么会这样吗?它甚至没有进入DllMain
蒂莫泰伊,
您讨论的问题可能包含在David Broman的帖子中:
David Broman的CLR Profiling API博客:在CLR V4上运行您的V2 Profiler二进制文件
对于CLR V4运行时,您应该在事件日志(使用事件查看器查看)中看到一些有用的信息,这些信息描述了无法加载探查器的原因.
如果您不想使用COMPLUS_ProfAPI_ProfilerCompatibilitySetting博客中讨论的设置,您还可以支持该ICorProfilerCallback3界面以添加对V4运行时的支持.
使用CLR V4,您可能还需要考虑并行场景,其中V2和V4运行时都加载到单个可执行文件中.有关更多信息,请参阅David的另一篇题为"Profilers,进程内并行CLR实例和免费测试工具"的帖子(遗憾的是,由于垃圾邮件阻止,我也无法发布链接).
| 归档时间: |
|
| 查看次数: |
643 次 |
| 最近记录: |