消失符号的情况

时间:2013-02-22 16:41:05

标签: debugging visual-studio-2012 debug-symbols

我有一个包含多个项目的解决方案,但我现在只运行两个。 项目1在发布模式下作为Windows服务运行,但在调试模式下作为控制台应用程序运行。项目2是MMC管理单元(输出类型=类库)。他们通过WCF进行沟通。

TIME A

当我在新构建后第一次开始调试时,我的callstack窗口显示了这一点:

lines in service...
[External Code]
--Transition from Client to Server --
lines in client...

我可以双击任意一行去那一行。我可以在任一项目中设置断点,它们都会被击中。

TIME B (当天晚些时候)

我开始在客户端(项目2)中看到断点上的标记,指示“断点当前不会被命中。源代码与原始版本不同”即使我刚刚重建了所有项目。我做了一些代码更改,但(据我所知)没有项目或构建更改。我做了一个“清洁”的解决方案,但没有帮助。调用堆栈仍然与TIME A期间的工作方式相同。

时间C (第二天 - 今天上午)

我重新启动了。我删除了所有obj和bin目录。我重建了整个解决方案,并希望重新开始将改善这种情况。现在情况更糟。断点用标记“断点当前不会被命中。此文档没有加载任何符号。”调用堆栈已经恶化,显示客户端为外部代码:

lines in service...
[External Code]
--Transition from Client to Server --
[External Code]
  • 如果我在调用堆栈中选择显示外部代码,它会列出来自客户端程序集的行(当然与系统程序集混合在一起),但都是灰色的。在“模块”窗口(调试>>>>>模块)中,客户端程序集列出。
  • 如果我从调用堆栈中的一行选择符号加载信息,它会显示“无法找到或打开PDB文件” 5个不同的位置,最好奇的一个在我的项目的obj / Release目录下 - 而不是obj / Debug目录 - 即使我的项目设置为Debug配置。
  • 如果我从调用堆栈中的一行选择加载符号,然后在我的obj / Debug或bin / Debug目录中选择pdb文件,它会报告“匹配的符号文件是在此文件夹“
  • 中找不到
  • 配置管理器显示所有项目都设置为Debug配置,并且所有项目都包含在构建中。

我已经回顾了类似的SO问题,这些问题帮助我找到了上面要检查的所有内容,但还没有找到任何押韵或理由。

如何从谵妄中保存Visual Studio并恢复丢失的符号?

1 个答案:

答案 0 :(得分:0)

好的,Visual Studio,正如我所料,是我,不是你。你通过厚重的[客户]继续展示你坚定的支持[功能]。我们还能成为[虚拟]朋友吗?它归结为我们文化的差异。我从表面上看待事物;你喜欢把自己埋在你的注册表数据中,忽略我面前的MMC snapin代码,喊着“我在这里,我在这里!”。

叹息。

我在这里。

我的意思是,仅仅因为它没有取代你与InstallUtil的最后一段关系,就是有任何理由去挖掘过去,将那些长期被遗忘的[代码]位置带到表面,让dll永远分开从pdb?显然你是这么认为的。是啊,有擦!我只是不理解你,但现在我做了。

哦,是的;现在我做了。