Visual Studio 2012"进入"错误的功能和断点未命中

时间:2015-07-15 21:38:18

标签: c# visual-studio-2012

我正在开发一个Xamarin项目,当我创建某个类的实例时,构造函数中的bearkpoint永远不会被击中。在实例化课程之后,我呼吁该课程的功能,并且visual studio 2012的Step Into功能将我发送到另一个完全不相关的另一个类的功能。

当我评论Step Into发送给我的无关功能并再次调用该功能时,Step Into再次将我发送给另一个第三类完全无关的功能。

这些功能甚至没有相同的名称。

我已经清理,重建,手动删除了bin和obj,没有任何作用。

任何人都知道发生了什么事?

注意:Go To Definition(F12)命令按预期工作,但Step Into(F11)不起作用。我也在调试模式而不是Release。

1 个答案:

答案 0 :(得分:2)

这里的问题显然是你的调试符号与你的源文件不同步。有几种方法可以实现:

  • 您没有积极构建调试符号(因此依赖于较旧的剩余部分),或者已启用优化。请注意,仅选择调试配置并不意味着情况并非如此 - “debug”只是一个标签,您可以将其命名为所有VS关注的小狗。检查设置。
  • 可能与GAC或符号服务器发生冲突,试图下载错误的符号。检查您的文件名,它们与系统DLL不太相似。
  • 你提到过Xamarin - 我会三次检查它是否有正确的符号。在调用堆栈之后可能会出现过时的Xamarin符号,当它出现并返回到您的代码(事件)时会搞砸。

我尝试的另一件事是冷启动你的可执行文件,然后通过VS连接。在“输出”窗口中逐行进行,看看哪些符号已加载,同样重要,哪些符号无法加载。检查输出文件夹,检查.pdb文件名。确保你不会混淆.vshost.exe文件,你只关心可执行文件和你自己的任何DLL。