我目前正在尝试为一个从外部启动的进程(而不是从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");
Assert是用来验证我没有发疯的。首先,* IsAttached * 属性返回了我所期望的false。然后我调用了 * Debugger. Launch ,它返回了true。根据 * Debugger. Launch * 的MSDN文档,它说只有在成功启动调试器或者已经附加了一个调试器的情况下才会返回true。我验证了一个调试器没有附加,所以它肯定已经启动了一个调试器。
断点永远不会被命中,第二次验证失败( IsAttached * 属性返回false)。我还尝试在 * Debugger.Launch * 之后放置一个休眠,以便给它一些时间,但没有效果。
有什么建议吗?
4条答案
按热度按时间wvmv3b1j1#
我在Visual Studio 2013高级版中遇到了同样的问题。Eric的answer让我不知道如何解决它。但您不需要更改寄存器。
1.转到工具--〉选项--〉调试
1.打开该项并选择实时调试器
1.如果您在窗口的下部看到一个黄色警告,提示正在使用与Visual Studio不同的其他调试程序。如果您看到该警告,请选中所有"及时"复选框,以返回VS作为调试程序。
就是这样!
vbkedwbf2#
这是一个蹩脚的答案,因为我找不到任何参考VS Express的问题,我有同样的问题,而使用VS 2013专业版。
尽管本文说VS 2013已经解决了这个问题,但是如果你像我一样使用VS 2013,请查找这里列出的临时修复选项卡。我使用它修复了这个问题。更多信息请参见链接。
我将链接another article,它使我在正确的方向,也许它也是有用的。
**摘要:**将Visual Studio实时调试器注册表项的AppIDFlags值从0x 28更改为0x 8(或根据上面的文章更改为0x 20,我猜是尝试和错误)。注册表项为HKEY_CLASSES_ROOT\AppID{E62 A7 A31 -6025- 408 E-87 F6 - 81 AEB 0 DC 9347}
wpx232ag3#
也许这会在将来帮助到一些人。我遇到了同样的问题,那个调试器。启动似乎没有做任何事情。原来是其他人登录到我的机器,调试器连接在他们的环境中启动,而不是我的。我把他们踢出系统,这样就解决了这个问题。
yk9xbfzb4#
在VS 2019中,首先验证是否安装了即时调试器。
然后在“选项”中启用实时调试器