未命中断点,未加载符号

问题描述 投票:0回答:3

我有一个带有一些断点的 VS 解决方案。当我将解决方案附加到第三方程序时,断点将被省略(“当前不会命中断点。尚未为此文档加载任何符号”)。令人困惑的是,不在我的解决方案中的任何(引用的)项目的断点都会被命中,只有我自己的解决方案中的那些项目不会被命中。因此,当与第三方工具交互时,我无法通过我的项目进行调试。我也尝试了this,但问题仍然出现。我还重新构建了整个解决方案,以重新创建项目的调试信息文件。该位置与其他解决方案相同,但显然未加载其包含的信息。有什么想法吗?

c# visual-studio-2010 breakpoints
3个回答
2
投票

最后我在this帖子中找到了答案。我查看了加载的模块(调试->Windows->模块,同时将程序集附加到进程)并注意到我的实际程序集不在列表中。我想要调试的代码是使用 .NET 3.5 构建的,但仅加载了 .NET 4.0 的模块。通常,就我而言,这可能会被自动检测到,但是这次自动检测由于某些奇怪的原因而不起作用,因此我将选定的代码类型从托管(v4.0)更改为托管(v2.0),现在它可以工作了。希望稍后我必须再次在 .NET 4.0 上调试时不会发生这种情况...


0
投票

如果之后还存在问题,您也可以尝试这些答案。

参考:第一个答案 或参见:第二个答案

开始调试,一旦到达断点或使用

Debug > Break All
,请使用
Debug > Windows > Modules
。您将看到加载到进程中的所有程序集的列表。找到您想要获取其调试信息的那个。右键单击它并选择符号加载信息。您将看到一个对话框,其中列出了在其中查找程序集的 .pdb 文件的所有目录。根据实际的 .pdb 位置验证该列表。确保它没有找到旧的。

在正常项目中,程序集及其 .pdb 文件应始终由 IDE 复制到与 .exe 相同的文件夹中。项目的 bin\Debug 文件夹。如果您一直在使用它,请务必从 GAC 中删除它。


0
投票

我能够通过将解决方案配置从发布更改为调试来解决 Visual Studio 中的此问题。

© www.soinside.com 2019 - 2024. All rights reserved.