gpt4 book ai didi

.net - 为什么探查器无法附加?

转载 作者:行者123 更新时间:2023-12-01 11:58:49 24 4
gpt4 key购买 nike

我为 .NET 应用程序编写了一个小型分析器。它使用 ICorProfilerCallback2 接口(interface)。

探查器附加并适用于 .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

知道为什么会发生这种情况吗?它甚至没有进入 DllMain

最佳答案

提莫泰

您讨论的问题可能在 David Broman 的帖子中有所涉及:
David Broman's CLR Profiling API Blog: Run your V2 profiler binary on CLR V4

对于 CLR V4 运行时,您应该在事件日志(使用事件查看器查看)中看到一些有用的信息,这些信息描述了探查器加载失败的原因。

如果您不想使用博客中讨论的 COMPLUS_ProfAPI_ProfilerCompatibilitySetting 设置,您还可以支持 ICorProfilerCallback3 接口(interface)以添加对 V4 运行时的支持。

对于 CLR V4,您可能还必须考虑并排方案,其中 V2 和 V4 运行时都加载到单个可执行文件中。有关详细信息,请参阅 David 的其他标题为“探查器、进程内并行 CLR 实例和免费测试工具”(遗憾的是,由于防止垃圾邮件,我也无法发布指向它的链接)。

关于.net - 为什么探查器无法附加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3537967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com