检测代码是否由调试器执行?

时间:2019-10-24 09:08:48

标签: c# .net debugging

我有一个C#类,该类具有使用System.IO.Ports.SerialPort从设备查询数据的属性。

在通过调试器进入程序时,首先评估该属性

Evaluation of method (...) calls into native method Microsoft.Win32.Win32Native.CreateEvent
(Microsoft.Win32.Win32Native+SECURITY_ATTRIBUTES, bool, bool, string).
Evaluation of native methods in this context is not supported.

然后显然仍然尝试执行它,显示

Function evaluation disabled because a previous function evaluation timed out. You must
continue execution to reenable function evaluation.

然后将串行端口对象置于无效状态。

通过设置DebuggerBrowsableAttribute,可以隐藏在查看父对象时不显示该属性的情况。

但是,将鼠标移到属性名称本身上仍会评估该属性。是否也可以抑制这种情况,或者至少让代码检测到它正在调试器上下文中执行并跳过其评估?

0 个答案:

没有答案