我目前正在尝试为从外部启动的进程(而不是从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之后放置延迟一段时间,但没有效果。
有什么建议吗?