4

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

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

4

3 回答 3

7

对于标准分析器接口,需要设置环境变量。

我想你可以通过Environment课堂检查这个。

该变量被调用COR_ENABLE_PROFILING,如果启用,将设置为1

于 2012-08-20T05:59:57.000 回答
1

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

因此 System.Diagnostics.Debugger.IsAttached,如果没有附加调试器(或分析器),将返回 False。

注意:我不确定 SlimTune 但您倾向于附加到进程的 Profiler:如何:将 Profiler 附加和分离到正在运行的进程

于 2012-08-20T05:55:47.923 回答
1

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

于 2019-02-04T16:49:00.020 回答