正在移动的断点Visual Studio 2010

时间:2014-11-26 20:05:27

标签: c# visual-studio-2010 visual-studio visual-studio-debugging

我在调试C#/ .Net程序时使用断点。我经常使用许多“When hit”断点来在Output窗口中显示消息并继续,所以我可以检查程序在执行时正在做什么。

但我经常发现在编辑代码后我的断点被移动,产生虚假或不正确的结果,我必须去删除旧的断点并制作新的断点。

在Stack Overflow上搜索此问题我发现其他程序员在Release模式下构建时遇到此问题,但我正在使用Debug配置构建。

如何让断点保持不变?

2 个答案:

答案 0 :(得分:5)

  • 您是否与项目的其他开发人员“共享”.csproj.user,.suo等文件?

如果您使用SCM将它们排除在外,则不会在不同的计算机之间共享这些文件。将它们发送给具有稍微不同来源的其他用户可能会导致这种有趣的混乱。

有关这些文件的更多详细信息: Best practices for Subversion and Visual Studio projects

  • 如果您在VS之外手动编辑文件(例如使用Notepad ++),也会发生这种情况:当您想要将断点保持在正确的位置时,尽量避免这种情况,VS根本不喜欢它。

答案 1 :(得分:1)

有很多方法可以检查程序的执行情况。确保为项目生成完整的调试信息。还要检查csproj.user,.suo文件是否设置为只读。

enter image description here

如果这些东西不起作用,我建议您使用一些基于控制台的输出提供方法。

试试这个

Console.WriteLine("Currently executing this...");

这里的控制台是VS的输出窗口。从'显示输出中选择调试:'。 enter image description here

如果要暂停执行,请使用此代码

Console.WriteLine("Currently executing this...");
System.Diagnostics.Debugger.Break();

您应该对代码进行条件编译,以便最终产品不会发布。 Console.WriteLine()不会导致任何问题,但System.Diagnostics.Debugger.Break()会破坏申请。