c# – 以编程方式分离调试器
发布时间:2020-12-15 04:30:00 所属栏目:百科 来源:网络整理
导读:我有一个第三方库在内部执行某些操作,导致它在连接调试器时大大减慢,即使在发布模式下也是如此. 我已经找到了100个关于如何通过调试 – 手动在Visual Studio中分离调试器的解释.分离过程.但是,我还没有看到任何人提供一个示例,其中程序可以将任何附加的调试
我有一个第三方库在内部执行某些操作,导致它在连接调试器时大大减慢,即使在发布模式下也是如此.
我已经找到了100个关于如何通过调试 – >手动在Visual Studio中分离调试器的解释.分离过程.但是,我还没有看到任何人提供一个示例,其中程序可以将任何附加的调试器分离给自己. 基本上是Debugger.Launch()的分离版本? 解决方法
根据
Why can’t you detach in interop-debugging?,CLR不支持分离进程.但Visual Studio可以做到这一点.但这篇文章已有5年历史了,你可以通过pinvoke从Windows Api使用
DebugActiveProcessStop吗?
BOOL WINAPI DebugActiveProcessStop( __in DWORD dwProcessId ); [DllImport("kernel32.dll")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool DebugActiveProcessStop([In] int Pid ); 编辑:试过这个:在当前进程中,即使提升,它也会拒绝访问. CLR Managed Debugger (mdbg) Sample 2006或2011 version也有任何内容 最后这篇文章explains what you need to do to use ICorDebug::Detach和我认为visual studio确实这样做了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |