【发布时间】:2010-11-30 22:08:30
【问题描述】:
有时我会收到断点不会被命中的消息,并且不会加载任何符号。
vs.net 中的红色图标变色,调试模式不起作用。
这是什么原因?
【问题讨论】:
-
看我的回答。仅供参考:在我的链接中执行每个项目符号(修复尝试)后,您必须实际启动一个新进程(对于您要附加的内容)并实际再次运行该程序(即:nunit、IIS 站点等)。在图标再次变为红色之前回答(或任何这些答案)。否则图标将保持黄色。
有时我会收到断点不会被命中的消息,并且不会加载任何符号。
vs.net 中的红色图标变色,调试模式不起作用。
这是什么原因?
【问题讨论】:
【讨论】:
来自菲利普·卡尼的Visual studio debugging issue with files of the same name
执行下面链接中的每个项目符号一次一个,但对每个尝试重复我的步骤。
在 Visual Studio 中停止调试(按红色方形图标)
清洁解决方案
构建解决方案
工具 > 附加到进程(或从调试开始)
启动您要附加的程序,并运行它以使您的代码受到影响
如果附加到nunit.exe,然后打开 NUnit 并运行测试,这样你的断点就会被命中
如果附加到w3wp.exe(IIS 站点),则在浏览器中打开您的站点并转到将触发断点的页面
【讨论】:
在尝试了几个建议的修复后,我执行了以下操作以使其正常工作。
花了 3 1/2 小时...我现在要去喝一杯。
【讨论】:
在“Debug/Release”下拉列表旁边,还有一个带有“Any CPU/Configuration Manager...”的下拉列表。单击“配置管理器...”,您将看到您的一些项目可能处于发布模式。将它们全部更改为 Debug。
【讨论】:
如果符号字段与程序集不同(远程调试),或者没有“直接路径”,则可能会发生这种情况,因此程序集尚未加载,但可能会使用反射加载所需程序集并在运行时间。
【讨论】:
如果调试器出于某种原因未附加到进程,也会发生这种情况。如果是这种情况,您始终可以转到调试 - 附加到进程...并选择正确的进程。一旦 VS 确定可以命中断点,您的断点应该会恢复正常。
【讨论】:
当您将鼠标悬停在禁用的断点上时会显示什么?它通常会告诉你问题所在。我最喜欢的是旧的“源代码已过时”,尤其是在我调试 DLL 时。另一个最喜欢的是当您正在查看的文件不是您正在调试的文件时(另一个文件夹中的副本?)。如果在这种情况下您可以断点调用例程而不是被调用者,则进入被调用者将强制 VS 打开“正确”源文件,您将能够设置断点。令人困惑,我通常在这一点上对 VS 发誓,这似乎有帮助。
【讨论】:
我不喜欢玩刀,但唯一对我有用的是编辑 .csproj 文件本身。因此,卸载项目文件,通过剪切和粘贴三个 asp.net 文件对其进行编辑,使它们一起在 ItemGroup 中。但是,有时需要更进一步,如下所述:http://carnotaurus.tumblr.com/post/4130422114/visual-studio-debugging-issue-with-files-of-the-same - 另外,我列出了其他对我不起作用的建议解决方案。希望对你有帮助。
【讨论】:
我遇到了同样的问题。我知道通常是如果构建版本不同,并且某些内容不匹配。我清理了我的项目,重建了它,然后进行了部署,这让一切恢复了同步。
【讨论】:
我已经对部署的应用程序和服务进行了测试,我发现如果部署的代码与 Visual Studio 中的代码不同,那么断点将不会命中。即使是很小的更改也会影响并且断点不会命中。因此,最好在 vs 代码以及部署应用程序或服务中调试相同的版本。
【讨论】: