Visual Studio 2015 RTM - 调试不起作用

Posted

技术标签:

【中文标题】Visual Studio 2015 RTM - 调试不起作用【英文标题】:Visual Studio 2015 RTM - Debugging not working 【发布时间】:2015-10-13 08:02:16 【问题描述】:

我已经安装了 VS 2015 RTM(仅此而已)并且我无法调试任何解决方案,无论它是现有解决方案还是全新解决方案(使用 VS 2015 创建并针对 .Net Framework 4.6 编译),它仅在 VS 中打开一个名为 Break Mode 的新选项卡,其中包含以下文本: 应用程序处于中断模式 您的应用已进入中断状态,但没有执行所选调试引擎支持的代码(例如,仅执行本机运行时代码)。 如果我检查调试 --> 模块窗口: 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 中调试工作正常。

任何帮助将不胜感激。

【问题讨论】:

如果在 main 中设置断点并点击 continue 会发生什么? @TGlatzer:程序关闭,断点没有隐藏。 你试过在安全模式下启动 VS 吗?它可能是由某些扩展引起的... 由于某种原因,单元测试框架将错误的调试引擎附加到单元测试过程中。您是否可以通过 Andrew.Hall@microsoft.com 与我联系并分享您的 .proj 文件以进行测试,以便我进行检查 我在 Visual Studio 2015 ***.com/questions/32167640/… 中的调试器/诊断工具遇到了类似的问题 【参考方案1】:

在我的情况下,这个解决方案很有用:

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

参考:c-sharpcorner

【讨论】:

【参考方案2】:

我在使用 VS2015 时遇到了同样的问题。我按照建议重置了设置,但仍然遇到问题。

我必须做的是检查“使用托管兼容模式”和“使用本机兼容模式”。不确定这两个中的哪一个是必要的,但检查两者,我不再遇到中断模式问题。

【讨论】:

这对我有用。如果您在 2015 年进行调试,并且您使用早期的调试引擎构建了您的应用程序,则可以选择此选项进行检查。 重置设置对我有用:msdn.microsoft.com/en-us/library/ms247075%28v=vs.90%29.aspx 我必须在安装 VS2015 Update 2 后执行此步骤。否则,调试器会声称某些变量不在范围内,而实际上它们确实在范围内。 这成功了。我还在这个答案正上方的答案中禁用了我的代码。不确定是否都需要,但谢天谢地,我终于可以通过了。 这是唯一适用于我的解决方案的选项。在一台机器上,应用了 VS2015 和 upate 2,在没有检查这两个选项的情况下工作。在应用了更新 3 的另一台机器上,我必须将这两个都选中才能调试和设置断点。【参考方案3】:

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

首先,您是否尝试过重置所有设置?我认为这可能与您所说的项目无关并且您已删除所有应用程序数据有关。

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

别担心,它提供了保存当前设置的选项。

其次,如果失败,我建议查看事件日志。

进入中断模式表明 DE(调试引擎)正在向 Visual Studio 发送同步停止事件,例如 IDebugExceptionEvent2。我会查看事件日志中的异常,例如加载引用的程序集(如 .NET 运行时等)失败或环境访问限制。

有些东西告诉调试器停止你正在运行的应用程序,它只是找到它的一个例子。

【讨论】:

我的调试问题在我恢复异常设置后得到解决,如下所示:***.com/a/42449394/2718874 @ArvoBowen haha​​haahha 我明白你的讽刺 这是解决这个问题的灵丹妙药。【参考方案4】:

我想我会发布这个以防它帮助任何人。我安装了干净的 Win 10 和 Visual Studio 2015,尝试调试现有解决方案并遇到问题。遵循了此处和其他地方列出的一些建议,但没有奏效。

我使调试正常工作的方法是更改​​菜单下方的解决方案配置。我之前将它设置为发布模式,将其更改为调试,然后清理/重新编译,嘿,调试开始正常工作。查看图片了解信息:

【讨论】:

我刚刚迁移到 VS 2015,当时调试 MVC Web 应用程序对我来说效果不佳。动作中的第一个断点将被击中,但单步执行代码不起作用,其他断点被忽略。代码刚刚完成,响应已发送。在我阅读您的回复之前,从未考虑过检查构建配置。感谢发布! 错误地我最终忘记将其从 Release 更改回 Debug。我喜欢其他人很可能将发布版本设置为不包含任何调试信息。因此,IDE 没有任何线索可以在您的代码中中断。它只知道告诉您由于某种原因它必须停止,以及为什么您会遇到烦人的中断屏幕。这是迄今为止最简单的解决方案,也是最正确的解决方案! ;) 谢谢!!确保 eeeeeverything 设置为 Debug / Any CPU!【参考方案5】:

我的解决方案突然停止调试。 我在调试期间收到一条消息。

[窗口标题] 微软视觉工作室 【主要说明】 您正在调试 NettoProWin.exe 的发布版本。将 Just My Code 与使用编译器优化的 Release 构建一起使用会导致调试体验下降(例如,断点不会被命中)。 [停止调试] [仅禁用我的代码并继续] [继续调试] [继续调试(不再询问)]

我选择继续调试,但还是不行。

解决方案很简单。需要在项目属性->构建部分->远程勾选“优化代码”

【讨论】:

这和问题中的问题无关吧? 这与问题有关。我现在可以再次调试。谢谢! 检查优化代码让我也可以再次调试!我有一个 C# 控制台应用程序并运行 VS 2017。感谢您发布此解决方案!【参考方案6】:

在附加到进程之前检查“代码类型”。例如,我必须从 CoreCLR 切换到 v4。*

【讨论】:

【参考方案7】:

就我而言,

我已在调试配置管理器中将平台从 x86 更改为 x64。它对我有用。

【讨论】:

【参考方案8】:

我禁用了 avast 文件系统屏蔽,然后一切又恢复正常。 avast-setting wheel= active protections- 顶部按钮关闭。

发布项目也需要相同。一场真正的噩梦

【讨论】:

【参考方案9】:

尝试使用 Debugger.Launch 调试 Web 应用程序时,我遇到了类似的问题:JIT 调试器选择窗口从未出现。我知道 VS 调试机制本身没有问题,因为它在控制台应用程序中触发得很好。

最后一位同事提到了一个“全局调试器注册表设置”,它点亮了一个灯泡。

几个月前我使用 Microsoft 的 DebugDiag 来解决 IIS 崩溃问题,我注册了一条规则来捕获 IIS 崩溃转储,显然(回想起来)将调试诊断服务注册为 w3wp(IIS 工作进程)的调试器。

删除 DebugDiag 中的规则,或停止调试诊断服务(“C:\Program Files\DebugDiag\DbgSvc.exe”)重新启用 Visual Studio 的 JIT 调试。

希望这对某人有所帮助。

【讨论】:

【参考方案10】:

呃。我点击了这个页面的底部,所以我开始拆分我的项目。我找到了解决我的特定问题的方法。

我的问题:我无法在线程进程中到达断点。没什么特别的,我只是在控制台应用程序中启动一个新线程,调试器并没有在断点处停止。我注意到正在创建线程,但它被挂在 .Net Framework 外部调用中,特别是 ThreadStart_Context。这就解释了为什么我的断点从未被命中,因为 .Net 框架正在挂起某些东西。

问题:我发现我可以通过更改我的启动代码来解决这个问题。无论出于何种原因,我有一个包含 Main() 的 program.cs 文件,并且它位于 Program 类中,正如您对控制台应用程序所期望的那样。在 Main() 中,我通过这段代码实例化了另一个类;

new SecondClass();

这通常可以正常工作,而且我还有很多其他带有线程调用的项目都可以正常工作(好吧,我已经有一段时间没有调试它们了,所以可能出现了一个服务包并导致了这种回归)。

解决方案: 将 Main() 移动到我的 SecondClass 中,而不是通过“new SecondClass()”调用 SecondClass 构造函数,而是将 SecondClass 构造函数更新为标准静态方法,然后从主要的。进行这些更改后,我可以再次调试线程。

希望这会有所帮助。

【讨论】:

【参考方案11】:

安装vs 2017后,在调试解决方案时,出现“Webkit已停止正常运行;Visual Studio将无法进一步调试您的应用程序。”之类的错误,这使得无法继续调试。要解决此问题,请转到 Tools->Options->Debugging->General 然后禁用 asp.net 的 javascript 调试

【讨论】:

【参考方案12】:

我在 Visual Studio 2015 上运行的 svc 应用程序也遇到过类似问题,解决方案是将解决方案平台从“任何 CPU”更改为“x86”,如果看不到 x86 选项,请单击“配置管理器”并转到您的目标项目并更改平台,您需要选择下拉菜单并单击“新建”,在弹出窗口中,单击“新平台”下的下拉列表并选择 x86,保存更改并重建(参见附)

【讨论】:

这是唯一帮助我的解决方案。【参考方案13】:
    停止调试。 编辑 csproj.user 文件 查找下面写的部分:

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

【讨论】:

【参考方案14】:

有朋友遇到同样的问题,在VS2015中无法调试,但在VS2013中没问题。 (我们的项目是.Net v4.0)

我们发现调试/附加到进程中的“代码类型”选项设置为“托管(v3.5,v3.0,v2.0)”而不是“托管(v4.5, v4.0)"

【讨论】:

您能否更好地解释一下您在哪里可以找到该选项? 调试 > 附加到进程 -> 附加到:___________ [选择...]【参考方案15】:

我遇到了这个问题,这里的(无数)帖子都没有帮助。大多数人指向设置或选项,打开调试模式等。所有这些我都已经准备好了(我知道不是这样,因为昨天还可以正常工作)。

对我来说,这是一个引用问题,应该归咎于包含的 DLL 组合。我不能确切地说出问题出在哪里,但我有几个类从另一个项目扩展基类,一个实现的接口本身从另一个接口扩展,等等。

酸性测试是在与调试失败的项目相同的项目中创建一个新类(在我的例子中是一个单元测试),然后创建一个空方法并在其上设置断点。这行得通,这进一步验证了我的设置/选项/等很好的事实。然后我复制了调试失败的方法的主体,果然新方法也开始失败。

最后我删除了所有引用,并注释掉了我方法中的所有行。将它们一一添加回来,在每一步检查调试,直到找到罪魁祸首。我显然在某处有一个流氓参考......

【讨论】:

【参考方案16】:

我们遇到了这个问题,在尝试了所有其他选项(例如删除 .vs 文件夹、重命名 IISExpress 文件夹名称、更新属性的各种设置等)后,它不起作用。但有效的是卸载 IISExpress 10.0,并重新安装它,同时从 Windows 功能中打开所有与 IIS 相关的功能。希望这可以帮助某人。

【讨论】:

【参考方案17】:

我将平台目标从“任何 CPU”更改为“x64”。

设置可用:项目属性 -> 构建 -> 常规:“平台目标”

我使用 VS 2015。

【讨论】:

【参考方案18】:

我发现我必须转到项目设置 -> 网络,然后勾选启用编辑并继续复选框。我不能说为什么一开始就没有检查它,但这为我解决了它。

【讨论】:

【参考方案19】:

从解决方案资源管理器 -> Web -> 属性

选择构建选项卡 -> 配置组合框:

只需将您的配置从“发布”更改为“活动(调试)”

【讨论】:

【参考方案20】:

在我的情况下,这是由于项目目标平台不同。

考虑ProjectA(条目)-->ProjectB

ProjectA 的 平台在属性中设置为 x64ProjectB 的平台是“AnyCPU”。

所以在将 ProjectB 的 目标平台设置为 x64 后,这个问题得到了解决。

注意: 只是目标平台必须同步,无论是 x64 还是 '任何 CPU'

【讨论】:

【参考方案21】:

在我的例子中,我在输出窗口中发现了一个提示,即停止调试器的异常是 ContextSwitchDeadlock 异常,默认情况下会在异常设置中检查该异常。此异常通常在控制台应用程序中 60 秒后发生。我只是取消选中异常,一切正常。

【讨论】:

【参考方案22】:

我也有同样的问题。就我而言,我试图调试的 dll 安装在 GAC 中。如果您的调试断点在您没有引用目标程序集中的任何对象时命中,但在您引用该程序集时没有命中,那么您可能就是这种情况。

【讨论】:

【参考方案23】:

我在卸载 RemObjects Elements 8.3 试用版后遇到了这个问题。重新安装 Elements 8.3 是一个快速的错误修复。

【讨论】:

【参考方案24】:

我也遇到了这个问题。我在 Windows 10 上使用 VS 2015(更新 3),我试图调试 Windows 窗体应用程序。没有一个建议对我有用。就我而言,我不得不禁用 IntelliTrace:

工具 > 选项 > IntelliTrace

我不知道原因,但它奏效了。当我打开资源监视器(从 Windows 任务管理器)时,我发现了问题的根源,我意识到 IntelliTrace 进程正在读取大量数据。我怀疑这导致了 vshost 进程的锁定,因为这个进程消耗了 100% 的 cpu 核心。

【讨论】:

我在工具 > 选项中没有可用的 IntelliTrace 选项。您能澄清一下路径还是由您拥有的插件添加的? @Slagh IntelliTrace 是 VS 的原生功能,但仅在企业版中可用。如果您当前的 VS 版本是其他版本,那么 IntelliTrace 不是您的问题的根源。我只是为了帮助与我有相同场景的其他人而回答,因为没有其他答案对我有用。【参考方案25】:

我也遇到过同样的问题。在没有运气的情况下尝试了其他解决方案后,我不得不通过安装程序修复安装。

控制面板 > 程序 > 程序和功能

然后向下滚动到 Microsoft Visual Studio,右键单击它,然后“更改”。然后在窗口底部,单击修复。修复过程需要相当长的时间,最后您必须重新启动计算机。

这解决了我的问题,希望对您有所帮助。

【讨论】:

以上是关于Visual Studio 2015 RTM - 调试不起作用的主要内容,如果未能解决你的问题,请参考以下文章

MSBuild 支持 Visual Studio 2017 RTM 中的 T4 模板

无法安装 Visual Studio 2013 更新 5 (RTM); Apache Cordova 工具

Visual Studio 2015正式发布

Visual Studio 2015 间歇性崩溃

使用 Visual Studio 2012 (RTM,Premium) 为 Windows Phone 7(或 7.1)开发

T4 预处理模板调试不起作用 - Visual Studio 2010 RTM