Visual Studio C#调试器 - 当前无法命中断点

6
我知道这个问题已经被问了很多次,这里的许多人都提出了不同的答案。然而,对我来说没有一个可用的。
我使用Visual Studio和.NET框架4.0创建了一个Windows Forms应用程序,并添加了断点。但是,当我调试应用程序时,断点上出现了一个感叹号,并且它显示:
“当前不会命中断点。该行没有关联的可执行代码。可能的原因包括:条件编译或编译器优化。”
我尝试了几个建议的解决方案
- 清理项目 - 删除pdb - 检查配置并确保其为调试配置 - 将调试配置从“x86”设置为“Any CPU” - 尝试从头开始创建项目 - 尝试重新安装.NET框架 - 移除临时ASP.NET文件
然而,似乎没有一个能够起作用。我以前能够使用断点调试我的项目,但由于某种原因,现在我不能再调试项目了。我应该注意什么或修复什么以解决此问题?

在你遇到问题的那一行代码之前设置一个断点,然后逐行调试代码。这样你就能看到代码是否被执行以及为什么没有被执行。也有可能是编译器优化掉了这段代码;请把相关代码贴出来。 - Tony
5个回答

5

可能你的断点在一个与“启动项目”无关的项目中。这些项目通常不会在运行时(按下F5按钮)进行编译。

请前往:菜单 工具选项项目和解决方案生成和运行 → 取消第一个复选框(仅在运行时构建启动项目及其依赖项)。


0
在 Visual Studio 中,前往菜单栏中的 DebugWindowsModules,找到您的代码所在的程序集并检查符号状态。很可能是因为 Visual Studio 加载了与您的 PDB 文件不匹配的不同版本。

1
已经检查过了,它正在正确加载 pdb 文件以及正确的可执行文件。此外,即使我创建一个新项目并在不进行任何更改的情况下运行它,它也无法正常工作。 - Murtuza Kabul
我猜你在谈论一个asp.net应用程序,如果你不开始调试,而是附加到已经运行的应用程序(IIS/Cassini),会发生什么? - Dominik
我已经明确指定了它是Windows窗体应用程序(即桌面应用程序)。然而,我也尝试了你的建议,结果是一样的。 - Murtuza Kabul

0
我最近遇到了这个问题,让我困惑了一段时间。结果是我不小心将构建配置从DEBUG切换到了另一个更优化的配置,并且没有“定义DEBUG常量”:项目 > 属性 > 构建 >(第一个复选框)。
如果您的解决方案中的其他项目设置为除DEBUG之外的配置,通常是在解决方案配置管理器中意外发生这种情况。

0

我在这里遇到了同样的问题...

我使用的是Visual Studio 2005 - 专业版,我的问题是当我尝试在Windows Forms应用程序中设置断点时。

我在互联网上搜索了许多论坛,但我没有找到任何答案。 但是解决这个问题比我预期的要容易得多。只需右键单击Visual Studio快捷方式(或.exe),然后取消标记以兼容模式运行


-7

您最好的选择是创建一个新项目。然后导入先前项目中的所有文件,包括表单(如果有)。

现在您已经准备就绪可以继续进行了。


我已经说过我尝试过从头开始创建项目,希望你已经仔细阅读了问题。 - Murtuza Kabul

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