首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有检测.NET分析器存在的API?

是否有检测.NET分析器存在的API?
EN

Stack Overflow用户
提问于 2013-01-31 12:49:35
回答 1查看 558关注 0票数 2

我在一个模拟工具上工作,它使用剖析API动态重写IL指令。通常,我们的客户有多个商业产品,使用分析API,而且在许多情况下,我们的分析器不会加载。

我想通过检测.NET分析器的存在来改进客户体验。如果发现第三方分析器,我想打印一条消息,帮助客户正确配置他们的环境。

到目前为止,我还没有找到一种可靠的方法来检测.NET分析器的存在。我曾考虑过解析ID为1022的Windows应用程序日志消息,并试图通过进程id进行匹配,但这看起来很奇怪。我检查了SSCLI实现,结果发现有一个函数IsProfilerPresent()执行所需的检查。我是否可以使用类似的公共Microsoft?

EN

回答 1

Stack Overflow用户

发布于 2013-01-31 13:17:47

Microsoft提供了一个非托管剖面 API,使分析器能够监视公共语言运行库(CLR)执行程序的情况。API引用两个环境变量,即进程是否应该连接到分析器。这些是

  • COR_ENABLE_PROFILING:只有当该环境变量存在并设置为1时,CLR才会连接到分析器。
  • COR_PROFILER:如果COR_ENABLE_PROFILING检查通过,则CLR连接到具有此CLSID或ProgID的探查器,该分析器必须先前存储在注册表中。COR_PROFILER环境变量定义为字符串。

取自这里

我不是分析应用程序的专家,但是API似乎是您需要的源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14626208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档