Breakpoints not hit, no symbols loaded
我有一个带有一些断点的vs解决方案。当我将解决方案附加到第三方程序时,断点被省略("当前不会命中断点)。没有为此文档加载符号)。任何不在我的解决方案中的(引用的)项目的令人困惑的断点都会被命中,只有我自己的解决方案中的断点不会。因此,当与第三方工具交互时,我无法通过项目进行调试。我也试过了,但问题仍然存在。我还重新构建了整个解决方案,以便为项目重新创建调试信息文件。位置与其他解决方案相同,但显然未加载其包含的信息。有什么想法吗?
- 是否尝试用调试模式下本地生成的输出替换第三方程序bin文件夹上的dll和pdb文件?此外,符号在命中程序集时首先加载,因此,请确保第三方在加载符号之前至少调用一次程序集。
- 是否尝试重新启动Visual Studio?我也会尝试"删除所有断点"。
- 有时我遇到一个项目,无论出于什么原因,在构建时都不能完全清除垃圾箱文件夹。尝试手动删除bin文件夹的内容。
- @Gerardo为什么要将dll和pdb复制到第三方工具?也不是针对解决方案,所以我想知道这是否是问题所在(但我想,工具本身可能引用了后台的dlls目录)。第三方工具实际上击中了程序集,我得到了在我的项目中创建的消息框(在五月断点之前)。
- @Anthon和Richard:我还清理了Solutions Bin文件夹及其所有断点:(
- @确保vs和第三方程序使用相同的二进制文件和正确的调试符号。我想这个程序已经有了一个dll的副本,所以这是对dll和pdb的双重检查。从哪里获取DLL的程序?另外,您的DLL不在GAC中,对吗?
- @Gerardogrignoli程序中有一个对话框,在该对话框中,我可以通过输入dll或类型库(TLB)文件(这正是我以前从项目中重新构建的文件)从现有外部资源添加功能。动态链接库也不在GAC中。我最近将此文件重置为程序集的最新版本。有些奇怪的事情似乎正在发生…
- 很明显-我从msdn.microsoft.com/en-us/library/vstudio/4c8f14c9.aspx上看到的-我的程序集根本没有在模块中列出。????
最后我在这篇文章中找到了答案。我查看了加载的模块(debug->windows->modules,同时将程序集附加到process),发现列表中没有我的实际程序集。我想要调试的代码是用.NET 3.5构建的,但模块仅为.NET 4.0加载。通常,在我看来,这可能是自动检测到的,但是这次自动检测由于一些奇怪的原因而不起作用,所以我将所选代码类型从托管(v4.0)更改为托管(v2.0),现在它起作用了。希望以后在.NET 4.0上调试时不会发生这种情况…