Очевидная проблема с VS2010 заключается в том, что собственный отладочный прерыватель (int 3), в то время как собственная отладка отключена , приведет к зависанию приложения.Я пытаюсь обойти это.
У меня есть обратный вызов, который перенаправит перерыв отладки в Diagnostics :: Debugger :: Break (), который работает так, как мы хотим.Мне просто нужно знать, когда делать это перенаправление.
Если кто-то отлаживает с включенным native, то я хочу, чтобы int 3 работал как всегда.Однако, если они отключили его, я хочу переслать на .NET перерыв.Он не даст полезной информации, потому что разрыв предназначен для собственного кода, но по крайней мере он будет делать что-то, кроме зависания навсегда.
Я могу обнаружить управляемый отладчик, используя Diagnostics :: Debugger :: IsAttached.Как я могу обнаружить нативный отладчик?Я думал, что (ошибочно названный) CheckRemoteDebuggerPresent () сделает свое дело, но возвращает true, даже когда выполняется только управляемая отладка.То же самое для IsDebuggerPresent ().
Как определить, подключен ли собственный отладчик к текущему процессу?