相关疑难解决方法(0)

如果多个文件具有相同的名称,Visual Studio断点会在错误的源文件(或多个文件同时)中断

在我正在研究的团队项目中,IdeasController.cs如果解决方案中存在另一个具有相同名称的文件,则在文件中设置断点(比如说)会导致调试器行为不稳定.我在几个开发人员的工作站上重现了这个问题.

IdeasController.cs在Web API中设置了一个断点:

断点在代码中设置

另一个文件IdeasController.cs存在于我们单独的MVC 4 Web项目中.在下面的屏幕截图中,调试器显示Api->IdeasController源代码,但行突出显示与代码结构匹配Web->IdeasController.断点是重复的,其中一个位于注释块的中间.

调试器突出显示与代码结构不匹配

Breakpoint窗口同时显示两个文件中的断点:

断点跨越两个文件

在某些工作站上,调试器会逐步执行正确的行(无论行突出显示); 在其他人身上,它愉快地介绍了不相关的行(包括评论和空白).我猜这取决于它选择显示哪个源文件.

我试过的

我拖网上网了.当调试文件(*.pdb),源文件和编译代码之间不匹配时,似乎会出现这种问题.有很多可能的原因:重复的文件名(可能会混淆调试器[5]),过时的项目构建文件,无效的解决方案缓存或不正确的构建配置.

这些是我发现并尝试过的解决方案:

  • 检查了我的构建配置.
    1. 确保项目不是在发布模式下构建的.
    2. 确保我们没有启用代码优化.
    3. 确保项目的调试模块已正确加载.(开始调试项目和检查Debug> Windows> Modules.这两个组件被列出,不最优化,并且具有的"加载符号"符号状态).
  • 重置调试元数据和Visual Studio缓存.
    1. 关闭Visual Studio并删除解决方案缓存文件(*.suo).[1]
    2. 删除了每个项目的构建输出(binobj文件夹).(供将来参考:在Windows资源管理器中打开解决方案文件夹,然后在搜索框中输入:" type:folder AND (name:=bin OR name:=obj)".
    3. 删除了程序集缓存文件夹(C:\Documents and Settings\<user>\Local Settings\Application Data\dl3).[2] [3]

这些都没有任何影响.我可以重命名其中一个文件(不重命名类)来暂时解决问题,但这远非理想.

我现在在哪里

我最新的Google搜索的第14页.建议将不胜感激.:)

msbuild debugging debug-symbols visual-studio visual-studio-2012

44
推荐指数
3
解决办法
1万
查看次数

禁用/删除子断点?

我正在使用Visual Studio中的C#调试ASP.NET网站.当我设置断点(在调试期间)时,随着时间的推移,创建的断点将累积许多子断点.(请参阅此处.)
现在,有时当我通过单击红色字形删除断点时,断点仍将在下次执行该行时被触发,因为子断点仍然存在.

在断点窗口中删除断点将解决问题,但是当你有许多设置时找到正确的断点很烦人.此外,删除许多孩子的断点是一个非常缓慢的操作.

那么为了解决这个问题,我可以禁用这个子断点的创建,还是有办法快速删除所有孩子?
备受欢迎的解决方案!


请注意,这与此不重复:有关如何删除Visual Studio断点的问题,因为我在询问如何处理子断点.(虽然我们的目标是相同的.)

.net c# breakpoints visual-studio visual-studio-debugging

10
推荐指数
1
解决办法
1404
查看次数