Visual Studio断点警告

Kyl*_*ven 21 c# breakpoints visual-studio-2008 visual-studio

在调试我的代码时,我经常抛出断点来检查局部变量的值,以确保一切都在正确的轨道上.

最近,当我对我的代码进行更改并重新编译时,我的所有断点都变成了圆圈的轮廓(而不是一个完整的红色圆圈)并且它给出了一个读取的错误;

断点当前不会被击中.此行没有可执行代码.可能的原因包括:条件编译或编译器优化.

这个问题的奇怪之处在于我可以简单地删除并添加断点,一切都可以正常工作.

我没有使用任何类型的条件编译或编译器优化.有谁知道这意味着什么或如何解决这个问题?每次编译时替换10-12个断点都会非常烦人.

Dar*_*opp 19

出现这种情况有几个原因

  • 调试器使用的代码与运行应用程序的代码不同
  • 调试器正在使用的pdb文件与运行应用程序的代码不同
  • 应用程序运行的代码已经过优化,调试信息已被删除.
  • 您有断点的代码尚未加载到进程中(假设上面的内容不是罪魁祸首)
  • 如果您要附加调试器,请注意它附加的.net框架(当代码全部是.net 2.0时,我使用.net 4时遇到了问题)
  • 您拥有的程序集也在GAC中.如果您安装了程序以便调试它,但安装程序将dll放在GAC中,则可能会发生这种情况.
  • 删除引用并重新添加它(感谢forsvarir).通常,当引用的项目不在解决方案中时,会发生这种情况,并且VS将从另一个项目的bin目录中复制dll.当您尝试重新添加引用时,您将知道这是问题,并且无法找到项目:)

很难弄清楚这里发生了什么,但我建议使用融合日志查看器来查看正在加载的内容以及加载的位置,然后你可以查看dll并查看它是否是旧代码等.

  • 在Tools-> Options-> Debugger-> General下检查调试器选项总是值得的.正确调试需要一些选项(例如,对C++/CLI应用程序使用托管兼容模式). (2认同)

Bru*_*oLM 8

检查项目设置

确保不检查代码优化选项,并确保选中调试符号.

调试

请注意,当您更改配置时,其他设置也可能会更改,您可能看不到.确保您尝试编译的配置的值正确.


删除输出文件

物理删除所有生成的DLL,PDB和EXE.然后再次编译以生成文件.在构建解决方案时,Visual Studio可能会"迷路"并"忘记"覆盖输出文件.


重启你的电脑

它通常可以解决99%的问题.我已经遇到了Visual Studio的一些问题并重新启动它或者计算机解决了这个问题.