4

我不希望任何人能够回答这个问题,但无论如何我都会尝试:

在 Visual Studio 2010 中,当我单击以在任何文件中设置断点时,会打开另一个文件,并且该断点被设置为该文件中的相同行号。

为了显示:

  1. 我打开 foo.cs
  2. 我点击在第 100 行添加断点
  3. VS 打开 bar.cs 并在(错误的)第 100 行设置断点
  4. 我在微软吐槽

与往常一样,我们将不胜感激任何帮助。

4

1 回答 1

1

你不是一个人!

我对 Visual Studio 2015 有完全相同的问题,这很烦人。根据我的经验,只有当 2 个不同的项目(在同一个解决方案中)都包含同名的文件时才会发生这种情况。

它与不同的 PDB 文件及其加载顺序有关。如果调试器可以找到具有匹配名称的文件,它似乎并不关心它是否在好的 PDB 中找到。

可悲的是,这已在 MSDN ( msdn.microsoft.com/en-us/library/h6aesyw2%28v=vs.100%29.aspx ) 上记录了一段时间,但仍未解决。

Microsoft 的解决方法是在添加断点时写入完整的文件路径,但我认为这不是一个可行的解决方案,因为它大大减慢了调试过程。

以下是我发现的其他“解决方案”:

  1. 重命名文件名(使它们变得唯一);
  2. 删除解决方案的 .SUO 文件似乎在某些情况下有效(对我不起作用);
  3. 删除“错误”项目的 PDB 文件(希望您不要同时调试两者);
  4. 更改“错误”项目的选项,使其不会在运行时生成/读取 PDB 文件。

希望这可以帮助!

于 2018-05-15T15:45:22.220 回答