检测附加的Profiler

时间:2012-08-20 03:47:38

标签: c# .net windows profiling

我知道您可以使用System.Diagnostics.Debugger.IsAttached确定是否附加了调试器,但有没有办法确定是否附加了分析器?

我的探查器无法通过线程池跟踪任务,所以我想在分析时自动禁用并行性。

3 个答案:

答案 0 :(得分:7)

对于标准探查器界面,需要设置环境变量。

我想您可以通过Environment课程查看此内容。

该变量名为COR_ENABLE_PROFILING,如果启用,则会设置为1

答案 1 :(得分:1)

无论是调试还是发布版本,都包含Debugger.IsAttached代码。并且可以附加调试器以将版本发布到。

因此,如果没有连接调试器(或探查器),System.Diagnostics.Debugger.IsAttached将返回False。

注意:我不确定SlimTune,但您倾向于附加到流程的Profilers:How to: Attach and Detach the Profiler to Running Processes

答案 2 :(得分:0)

对于那些感兴趣的人,似乎可以通过检查DIAGHUB_SESSION_ID环境变量的存在来检测Visual Studio的诊断中心(至少在Visual Studio 2017中)是否正在分析您的进程。