我目前正在尝试为外部(而不是从Visual Studio内部)启动的进程启动调试器。我似乎无法真正启动调试器,因为似乎没有任何 react 。在此过程中,我添加了以下代码:
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之后休眠,给它一些时间,但无济于事。
有什么建议?
最佳答案
我在Visual Studio 2013 Premium中有相同的问题。 Eric的answer让我着手解决它。但是您不需要更改寄存器。
关于使用其他调试的警告与Visual不同
工作室。如果看到,请选中所有“及时”复选框以返回
VS作为调试程序。
就这些!
关于c# - Debugger.Launch不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12655965/