如何在Windows代码中检测本机调试器?

时间:2012-02-18 02:21:19

标签: .net windows

VS2010的一个明显问题是本机调试中断(int 3)而本机调试禁用将导致应用程序显然挂起。我正在努力解决这个问题。

我有一个回调,它会将调试中断重定向到Diagnostics :: Debugger :: Break(),它可以按照我们想要的方式工作。我只需要知道何时进行此重定向。

如果某人正在调试本机启用,那么我希望int 3一如既往地工作。但是,如果他们禁用它,我想转发到.NET中断。它不会提供有用的信息,因为break适用于本机代码,但至少它会做除了永久挂起之外的事情。

我可以使用Diagnostics :: Debugger :: IsAttached检测托管调试器。如何检测本机调试器?我认为(误导性地命名)CheckRemoteDebuggerPresent()可以解决问题,但即使进行仅管理调试,它也会返回true。 IsDebuggerPresent()也是如此。

如何检测本机调试器是否附加到当前进程?

0 个答案:

没有答案