我目前正在尝试为外部启动的进程(而不是从 Visual Studio 内部)启动调试器。我似乎无法真正启动调试器,因为它似乎没有任何反应。在此过程中,我添加了以下代码:
Debug.Assert(Debugger.IsAttached == false, "Should be no debugger");
if (!Debugger.IsAttached)
{
Debug.Assert(Debugger.Launch(), "Debugger not launched");
}
Debugger.Break();
Debug.Assert(Debugger.IsAttached == true, "Debugger should be attached");
这些断言是为了验证我没有疯。起初,IsAttached属性返回 false,正如我所料。然后我调用Debugger.Launch,它返回true。根据Debugger.Launch的 MSDN 文档,它表示只有在成功启动调试器或已附加调试器时才会返回 true。我验证了一个没有附加,所以它一定已经启动了一个。
断点永远不会被击中,并且第二次验证失败(IsAttached属性返回 false)。我还尝试在Debugger.Launch之后休眠以给它一些时间,但无济于事。
有什么建议么?