是否存在的检测调试器运行在内存中的任何方式?
这里谈到的表格载伪代码。
if debugger.IsRunning then
Application.exit
end if
编辑:原题是“发现一个已经在内存中的调试器”
是否存在的检测调试器运行在内存中的任何方式?
这里谈到的表格载伪代码。
if debugger.IsRunning then
Application.exit
end if
编辑:原题是“发现一个已经在内存中的调试器”
请尝试以下
if ( System.Diagnostics.Debugger.IsAttached ) {
...
}
有两两件事要记住使用该关闭的调试器中运行应用程序之前:
现在,要多用,这里是如何使用这种检测,以保持函数计算在调试器来改变你的程序的状态,如果你有一个缓存性能原因,懒洋洋地评估物业。
private object _calculatedProperty;
public object SomeCalculatedProperty
{
get
{
if (_calculatedProperty == null)
{
object property = /*calculate property*/;
if (System.Diagnostics.Debugger.IsAttached)
return property;
_calculatedProperty = property;
}
return _calculatedProperty;
}
}
我也用这个变体在次,以确保我的调试器步进式不跳过的评价:
private object _calculatedProperty;
public object SomeCalculatedProperty
{
get
{
bool debuggerAttached = System.Diagnostics.Debugger.IsAttached;
if (_calculatedProperty == null || debuggerAttached)
{
object property = /*calculate property*/;
if (debuggerAttached)
return property;
_calculatedProperty = property;
}
return _calculatedProperty;
}
}