断点当前不会被击中,为什么不呢?

时间:2009-09-23 21:54:41

标签: visual-studio debugging

有时我会收到断点不会被命中的消息,并且不会加载任何符号。

vs.net中的红色图标会改变颜色,调试模式不起作用。

这是什么原因?

12 个答案:

答案 0 :(得分:7)

您可能正在发布模式下运行项目。如果是这样,则切换到调试模式

enter image description here

答案 1 :(得分:5)

  1. 仅用于管理代码 - 以下网站上的此问题是一个很好的答案: http://geekswithblogs.net/dbutscher/archive/2007/06/26/113472.aspx
  2. 用于本机+托管代码 - 在启动解决方案属性中 - >调试选项卡 确保选中“启用非托管代码调试”复选框

答案 2 :(得分:3)

在“一次”下面的链接中执行每个项目符号,但是在您尝试的每个项目中重复我的步骤。

http://carnotaurus.philipcarney.com/post/4130422114/visual-studio-debugging-issue-with-files-of-the-same

1。)在Visual Studio中停止调试(按红色方块图标) 2.)清洁溶液
3.)构建解决方案
4.) [INSERT BULLET INSTRUCTION]
5.)工具>附加到过程(或从调试开始)
6.)启动您要附加的程序,并运行它以使您的代码受到影响

6解释说:

如果附加到nunit.exe,则打开NUnit并运行测试以便命中断点

如果附加到w3wp.exe(IIS站点),则在浏览器中打开您的站点并转到将到达断点的页面

答案 3 :(得分:2)

在为此尝试了几个建议的修复后,我执行了以下操作以使其正常工作。

  1. 右键单击解决方案资源管理器中的项目并选择“属性”。
  2. 进入“网页”部分并确保“开始操作”设置为“当前页面”。
  3. 花了3个半小时......我现在要去喝酒了。

答案 4 :(得分:1)

如果符号fiels与程序集(远程调试)不同,或者没有“直接路径”,则会发生这种情况,因此程序集已加载,但可能使用反射和加载所需程序集加载运行时间。

答案 5 :(得分:1)

如果调试器由于某种原因未附加到进程,也会发生这种情况。如果是这种情况,您可以随时转到Debug - Attach to Process ...并选择正确的流程。一旦VS确定它可以击中它们,你的断点应该恢复正常。

答案 6 :(得分:1)

我通过为" 附加到 &选择 自动:原生代码 解决了这个问题#34;字段" 附加到流程 "形式enter image description here

答案 7 :(得分:0)

当您将鼠标悬停在已禁用的断点上时,它会说什么?它通常会告诉你问题。我最喜欢的是旧的'源代码已过时',尤其是当我调试DLL时。另一个最喜欢的是当你正在查看的文件不是你正在调试的文件(另一个文件夹中的副本?)。如果你可以断开一个调用者例程而不是被调用者,则进入被调用者将强制VS打开“正确”的源文件,你将能够设置断点。令人困惑的是,我通常在VS发誓,这似乎有所帮助。

答案 8 :(得分:0)

我不喜欢玩刀具,但唯一有效的方法是编辑.csproj文件本身。因此,卸载项目文件,通过剪切和粘贴三个asp.net文件来编辑它,以便它们在ItemGroup中一起使用。但是,有时需要更进一步,如下所述:http://carnotaurus.tumblr.com/post/4130422114/visual-studio-debugging-issue-with-files-of-the-same - 此外,我列出了其他一些对我不起作用的建议解决方案。我希望它有所帮助。

答案 9 :(得分:0)

我遇到了同样的问题。我所知道的通常是构建版本不同,并且某些东西不匹配。我清理了我的项目,重建了它,然后进行了部署,让所有东西都恢复了同步。

答案 10 :(得分:0)

在“调试/发布”下拉列表旁边,还有另一个带有“任何CPU /配置管理器...”的选项。单击“配置管理器...”,您将看到某些项目可能处于发布模式。将它们全部更改为Debug。

答案 11 :(得分:0)

我已经对部署的应用程序和服务进行了测试,我发现如果部署的代码与 Visual Studio 中的代码不同,那么断点将不会命中。即使很小的更改也会影响并且断点不会命中。因此,最好调试与 vs 代码以及部署应用程序或服务中相同的版本。