使用System.Diagnostics.Debugger.Debugger.IsAttached
我可以告诉你附加了一个调试器。有没有办法检测附加的调试器是否是远程调试器(Visual Studio Remote Debugger Monitor
)?
答案 0 :(得分:3)
您可以使用kernel32.dll
CheckRemoteDebuggerPresent
来自MSDN:
"遥控器"在CheckRemoteDebuggerPresent中并不意味着 调试器必然驻留在另一台计算机上;相反,它 表示调试器位于单独且并行的中 的过程。强>
您可以按如下方式使用它:
[DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
static extern bool CheckRemoteDebuggerPresent(IntPtr hProcess, ref bool isDebuggerPresent);
public static void Main()
{
bool isDebuggerPresent = false;
CheckRemoteDebuggerPresent(Process.GetCurrentProcess().Handle, ref isDebuggerPresent);
Console.WriteLine(string.Format("Debugger Attached: {0}", isDebuggerPresent));
Console.ReadLine();
}