Visual Studio 2015 RTM - 调试不起作用

63
我已安装了VS 2015 RTM(没有其他内容),但无法调试任何解决方案,不管它是现有的还是全新的(使用VS 2015创建并编译为.NET Framework 4.6),它只会在VS中打开一个名为“断点模式”的新标签,并显示以下文本: 应用程序处于断点模式 您的应用程序已进入断点状态,但没有正在执行所选调试引擎支持的代码(例如,仅执行本机运行时代码)。 如果我检查Debug->Module Window: VS2015Test.vshost.exe没有加载符号(即使我单击加载符号也无效) VS2015Test.exe加载了符号
此外,它也不会在控制台上显示输出(这是一个只有以下代码行的控制台应用程序:
class Program
{
        static void Main(string[] args)
        {
            Console.WriteLine("TEST");
            Console.ReadKey();
        }
    }

我尝试重新安装VS 2015,重启计算机,在%temp%/AppData/Microsoft/Visual Studio/14中删除所有文件,以管理员模式启动VS,但似乎没有任何作用。

使调试工作的一项东西是这个选项: 工具-->选项-->调试-->使用托管兼容模式

^^但这不能成为使用旧/遗留模式的解决方案。

顺便说一句:在VS 2013中调试工作得很好。

任何帮助都将不胜感激。


@TGlatzer:程序关闭了,断点没有被隐藏。 - rene_r
你尝试过在安全模式下启动VS吗?这可能是由某个扩展程序引起的... - Anton Kalcik
2
由于某些原因,单元测试框架正在将错误的调试引擎附加到单元测试进程中。您是否可以通过发送您的测试.proj文件给我(Andrew.Hall@microsoft.com),以便我进行检查? - Andrew Hall - MSFT
1
我在使用Visual Studio 2015的调试器/诊断工具时遇到了类似的问题。https://dev59.com/tFwY5IYBdhLWcg3w0KrL - garyamorris
我有同样的问题。 - Bilal Fazlani
显示剩余7条评论
25个回答

72

对我来说,这个解决方案很有用:

解决方案:在调试/常规设置中禁用“只有我的代码”选项。

输入图像描述

参考:c-sharpcorner


43

我遇到了与VS2015相同的问题。按建议重置设置,但仍然有麻烦。

我要解决问题的方法是勾选“使用托管兼容模式”和“使用本机兼容模式”。不确定这两者中哪一个是必需的,但同时勾选这两个后,我不再遇到断点模式问题了。

Break Mode Fix - Debug Settings


这对我有用。如果你在2015年进行调试,并且你使用早期的调试引擎构建了你的应用程序,那么这是要检查的选项。 - Farhad Alizadeh Noori
重置设置对我很有用:https://msdn.microsoft.com/zh-cn/library/ms247075(v=vs.90).aspx - Stef Heyenrath
2
我在安装了VS2015更新2之后才不得不执行此步骤。否则,调试器会声称某些变量不在范围内,而它们显然是在范围内的。 - ciriarte
这样做很管用。我还在上面答案中禁用了我的代码。不确定是否所有的都需要,但感谢上帝我终于可以逐步执行了。 - Frank M
1
这是我解决方案中唯一有效的选项。在一台使用VS2015和更新2的机器上,无需勾选这两个选项即可运行;但在我另一台使用更新3的机器上,必须取消这两个选项才能调试并设置断点。 - Ed DeGagne
显示剩余2条评论

15

我最近遇到了一个非常相似的问题,与调试设置有关。

首先,你尝试重置所有设置了吗?因为你说它与项目无关并且你已经删除了所有应用程序数据,所以我认为它可能与此有关。

工具->导入和导出设置向导->重置所有设置

不用担心,它会给你保存当前设置的选项。

其次,如果这个方法失败了,我建议查看事件日志。

进入断点模式意味着DE(调试引擎)向Visual Studio发送了同步停止事件,例如IDebugExceptionEvent2。 我会在事件日志中寻找类似于加载引用程序集(例如.NET运行时等)或环境访问限制失败的异常。

某些东西正在告诉调试器停止你正在运行的应用程序,只是需要找到它。


当我按照这里所示的方式恢复异常设置时,我的调试问题得到了解决:https://dev59.com/AV0Z5IYBdhLWcg3whApv#42449394 - Josh
@ArvoBowen 哈哈哈哈,我懂你的讽刺意味。 - Alex Gordon
这是解决这个问题的万能钥匙。 - ligand

15

如果有所帮助,我想发布这篇文章。我安装了一个干净的Win 10和Visual Studio 2015,并尝试调试一个现有的解决方案,但遇到了问题。按照这里和其他地方列出的一些建议,但都没有奏效。

我使调试正常工作的方法是更改菜单下方的"Solution Configuration"。我先前将其设置为"Release mode",将其更改为"Debug mode",然后进行清理/重新编译,魔术般地,调试开始正常工作了。有关信息,请参见以下图像:

enter image description here


当我刚刚转移到VS 2015时,调试MVC Web应用程序对我来说并不顺利。在操作中第一个断点会被触发,但是代码步进无法正常工作,其他断点也被忽略了。代码只是完成了并发送了响应。我从未想过检查构建配置,直到我看到了你的回复。感谢您的发布! - R. Schreurs
错误地忘记将此从 Release 更改回 Debug。像我这样的其他人很可能已经设置了 Release 构建,以便不包括任何调试信息。因此,IDE 不知道在代码中断点位置。它只知道告诉您由于某个原因必须停止,并且这就是为什么会出现烦人的中断屏幕。这绝对是最简单的解决方案,也是正确的!;) - Arvo Bowen
谢谢!确保所有设置都是Debug / Any CPU! - BClaydon

6

我的解决方案在调试中突然停止工作了。 我在调试过程中收到了一条消息。 我在调试过程中收到了一条消息

[窗口标题] Microsoft Visual Studio [主要提示] 您正在调试 NettoProWin.exe 的发布版本。对于使用编译器优化的发布版本,使用“仅限我的代码”会导致调试体验下降(例如,断点将不会被命中)。 [停止调试] [禁用“仅限我的代码”并继续] [继续调试] [继续调试(不再询问)]

我选择继续调试,但它仍然没有起作用。

解决方案很简单。在项目属性中必须进行设置->在构建部分中->取消选中"Optimiz code" 输入图像描述


1
这与问题本身无关,是吧? - Nick Baker
这与问题有关。我现在能够再次进行调试。谢谢! - codeg
检查“优化代码”选项让我能够再次进行调试!我有一个C#控制台应用程序,正在运行VS 2017。感谢您发布这个解决方案! - Dave Stuart

3

在连接到进程之前,请检查“代码类型”。例如,我不得不从CoreCLR切换到v4.*。

选择代码类型


1
当我尝试使用Debugger.Launch调试Web应用程序时,出现了类似于这样的问题:JIT Debugger Selection窗口从未出现。 我知道这不是VS调试机制本身的问题,因为它与控制台应用程序一起正常启动。
最终,一位同事提到了“全局调试器注册表设置”,这点启发了我。
几个月前,我使用了微软的DebugDiag来解决IIS崩溃的问题,并注册了一个规则来捕获IIS崩溃转储,显然(回顾起来)这注册了Debug Diagnostic Service作为w3wp(IIS工作进程)的调试器。
删除DebugDiag中的规则或停止Debug Diagnostic Service(“C:\Program Files\DebugDiag\DbgSvc.exe”)重新启用了Visual Studio的JIT调试。
希望这能帮助某些人。

1

安装了vs 2017后,在调试解决方案时出现了一个错误,如下:“Webkit has stopped functioning correctly; Visual Studio will not be able to debug your app any further.”,这使得无法继续调试。要解决此问题,请转到“工具->选项->调试->常规”,然后禁用ASP.NET的JavaScript调试。


1
在我的情况下,我已经在Debug配置管理器中将平台从x86更改为x64。这对我起作用了。

1
  1. 停止调试。
  2. 编辑 csproj.user 文件
  3. 查找下面写的部分:

    <SilverlightDebugging>True</SilverlightDebugging>

  4. 将值更改为“False”
  5. 在Visual Studio中卸载并重新加载您的项目。
  6. 有时需要关闭Visual Studio。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接