Debugger.Launch不工作

Tre*_*erg 12 c# debugging .net-4.0 visual-studio

我目前正在尝试为外部启动的进程启动调试器(而不是从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");
Run Code Online (Sandbox Code Playgroud)

断言是为了证实我并不疯狂.首先,IsAttached属性返回false,正如我所期望的那样.然后我调用Debugger.Launch,然后返回true.根据Debugger.Launch的MSDN文档,它表示如果成功启动调试器,或者如果已连接调试器,它将仅返回true.我确认一个没有附加,所以它必须启动一个.

断点永远不会被击中,第二次验证失败(IsAttached属性返回false).我也尝试在Debugger.Launch之后暂停一下,给它一些时间,但无济于事.

有什么建议?

fre*_*per 13

我在Visual Studio 2013 Premium中遇到同样的问题.Eric回答了我如何解决它.但是您不需要更改寄存器.

  1. 转到工具 - >选项 - >调试
  2. 打开项目并选择及时调试器
  3. 如果你在窗口的下半部分看到一个关于正在使用的其他调试的黄色警告与visual studio不同.如果您看到,请选中所有Just in Time复选框以返回VS作为调试程序.

就这些.!

选项Just in Time调试器

  • 这对我有用。我几乎每天都使用即时调试器,但有一天它停止工作并提到复选框未被选中 - 即某些东西禁用了它。但我不知道是什么。 (2认同)

Eri*_*ric 5

那是一个la脚的答案,因为我在问题中找不到任何与VS Express的引用,并且在使用VS2013 Pro时遇到了相同的问题。

尽管这个文章的最高审计机关的问题在VS2013解决,即使您正在使用VS2013我一样,找临时修复标签列出。我使用它解决了这个问题。链接中的更多信息。

我将链接另一篇文章,使我朝正确的方向发展,也许它也很有用。

摘要:将Visual Studio即时调试器注册表项的AppIDFlags值从0x28更改为0x8(或根据上面的文章,将0x20更改为0x20,我想是反复试验),它们的注册表项是HKEY_CLASSES_ROOT \ AppID \ {E62A7A31-6025- 408E-87F6-81AEB0DC9347}


Mar*_*lug 5

也许这会在将来对某人有所帮助。我遇到了同样的问题,即Debugger.Launch似乎没有执行任何操作。事实证明,其他人已登录到我的计算机中,并且调试器附加提示在其环境(而不是我的环境)中启动。我将他们踢出系统,并进行了修复。