我目前正在尝试为外部(而不是从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中有相同的问题。 Ericanswer让我着手解决它。但是您不需要更改寄存器。

  • 转到工具->选项->调试
  • 打开该项目,然后选择即时调试器
  • 如果您在窗口的下部看到黄色
    关于使用其他调试的警告与Visual不同
    工作室。如果看到,请选中所有“及时”复选框以返回
    VS作为调试程序。

  • 就这些!

    关于c# - Debugger.Launch不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12655965/

    10-11 04:43