为什么我的符号(pdb)不能从本地路径加载?

我刚刚构建了一个由一些C ++和C#代码组成的应用程序,并将它安装在另一台计算机上。 当我连接远程调试器时,我可以调试C ++代码,然后执行它。 但是,当我尝试调试C#代码时,这些符号似乎并未加载。 我试过在Visual Studio中调出模块窗格,并浏览了正确的.pdb文件,但我只是收到一个消息框,告诉我它不匹配。

我无法弄清楚为什么会发生这种情况。 我从这里使用chkmatch:http://www.debuginfo.com/tools/chkmatch.html - 报告说我选择的.exe和.pdb匹配。

我已经擦干了所有的资源,取回并重建了所有的东西,所以我很确定我没有在.pdbs附近出现一些错误。

我发现这个相关的问题符号文件MyFile.pdb与模块不匹配但是,这是更多做本地符号不匹配。 我的本地符号相匹配,只是符号拒绝匹配的.net程序集。

任何建议要检查的东西都会非常受欢迎。

谢谢。

更新:我已经设法让符号现在加载! 但是......解决方案是将符号文件复制到远程计算机,并将它们放在与远程计算机上的.exe和dll相同的文件夹中。 Visual Studio似乎拒绝从我的本地机器加载它们。 如果我在模块窗口中右键单击该模块并选择'符号加载信息...',这将显示它尝试从中加载符号的路径,并且这包含了我的pdb文件所在的正确本地路径机。 我已经查看了pdbs的安全性和访问控制属性,并给予了所有人的访问权限。

这真是令人困惑,我确信过去我已经能够加载符号了。 我想不出任何我已经改变的东西,这会突然导致它停止工作。

为什么Visual Studio会拒绝从本地机器加载符号?


就是这个。 用于.NET远程调试的PDB总是从远程机器加载。 在过去,我一定是将pdb复制到远程机器上,但我忘了它。

http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/26/visual-studio-remote-debugging-and-pdb-files.aspx


啊。 我知道为什么我不必记得将pdb的拷贝拷贝到远程机器一段时间。 我在远程机器上设置了一个网络文件夹映射,它将驱动器映射到我的本地计算机......并用于解析路径。 我有一个本地驱动器S:在那里我保留了所有的源代码,并且正好是网络映射来驱动S:在远程机器上,所以一切正常。 我想我会重新添加该映射,然后我可以进行调试而无需手动复制pdb。

这似乎是远程调试托管代码的一个便利技巧。 我只是没有意识到我在做这件事!


请注意,Visual Studio 2013对此进行了更改。截至2013年,PDB必须位于本地计算机上。

http://msdn.microsoft.com/en-us/library/ms241613.aspx

链接地址: http://www.djcxy.com/p/12935.html

上一篇: Why won't my symbols (pdb) load from a local path?

下一篇: Debug with an incompatible Visual Studio, but with .pdb