Visual Studio尚未为此文档加载任何符号 我调试Visual Studio 2008 C++项目遇到了一些麻烦。当我在debug中开始运行它时,断点会被消息禁用

Visual Studio尚未为此文档加载任何符号 我调试Visual Studio 2008 C++项目遇到了一些麻烦。当我在debug中开始运行它时,断点会被消息禁用,c++,visual-studio,visual-studio-2008,C++,Visual Studio,Visual Studio 2008,断点将不会被命中。尚未为此加载任何符号 文件 我尝试过清理和重建,但这没有什么不同 我还尝试在调试->窗口->模块中查找。如果我右键单击要调试的模块并按符号加载信息,它会显示一个列表,列出它试图加载符号的位置。列表中的第一个是正确的,并且文件存在,但是它旁边是这个错误 C:\path\to\my\symbol\Debug\MyProject.pdb:的未知符号处理程序 错误 有人知道这是什么原因或如何解决吗?首先,您的一些模块可能不会显示在模块窗口中,因为其中一些模块可能会动态加载(仅在需要时)

断点将不会被命中。尚未为此加载任何符号 文件

我尝试过清理和重建,但这没有什么不同

我还尝试在调试->窗口->模块中查找。如果我右键单击要调试的模块并按符号加载信息,它会显示一个列表,列出它试图加载符号的位置。列表中的第一个是正确的,并且文件存在,但是它旁边是这个错误

C:\path\to\my\symbol\Debug\MyProject.pdb:的未知符号处理程序 错误


有人知道这是什么原因或如何解决吗?

首先,您的一些模块可能不会显示在模块窗口中,因为其中一些模块可能会动态加载(仅在需要时)

您可能希望在“链接器>调试>生成程序数据库文件”和“生成调试信息”下签入项目属性。确保这两个设置正确

另外,检查是否将C/C++>General>Debug Information Format设置为Program Database for Edit And Continue(/ZI)或类似的设置

我知道您提到您的符号文件存在,但检查我刚才提到的内容将确保您的符号的正确版本位于正确的位置

最后,检查解决方案中的所有项目和文件是否都设置为“作为调试而不是发布”或其他方式编译,因为不会为此项目/文件生成任何符号(因此不会加载任何符号)


希望这能有所帮助。

我已经设法解决了这个问题,方法是从侧面复制我的源代码,并签出一个完全干净的副本。我假设是projects.suo文件中存储的某个设置。

mspdbsrv.exe进程可能有问题。尝试终止它并再次启动调试器。

对我来说,修复方法就是重新启动VisualStudio(:)就这么简单。没有其他帮助-尝试清理(甚至删除调试文件夹中的所有文件)、检查设置、甚至终止mspdbsrv.exe进程,但只有VS restart起作用。

在我的情况下,通过选中“使用托管兼容性模式”解决了问题在工具/选项/调试/常规中。

模块
窗口中,您可以右键单击并将
调试
输出文件夹添加到系统查找符号文件的文件夹中。另外,对我有效的方法是手动删除所有输出文件,
Clean
不会每次都这样做,这就是为什么即使生成了
.pdb
文件,它也与您的输出文件不对应,因此不会从中加载符号

删除bin和obj文件夹中的所有文件。然后再次构建解决方案。如果您的问题与我的问题类似,那么VS似乎正在加载特定未知文件的旧版本,而重建解决方案/项目不会替换该文件。在尝试此操作之前,请确保复制您的解决方案/项目。祝你好运

1)右键单击要调试的项目

2) 选择[属性]

3) 选择[Build]选项卡

4) 确保选中了[定义调试常量][定义跟踪常量]

5) 单击构建选项卡页面底部的[Advanced]按钮 确保[Debug Info:::设置为[full]

6) 单击[确定]

7) 重建项目

在项目文件夹中复制“调试”文件夹,然后删除原始“调试”文件夹中的每个文件。作为附加措施,如果您的visual studio已经在加载项目的情况下运行,请在删除调试的包含后关闭它,并在重新构建整个项目之前重新打开它,理论上,此操作将创建符号文件的新副本以及调试代码所需的其他副本。 当我将文件移动到另一台计算机并尝试从那里编译和调试代码时,我发现出现了这个问题,尽管所有文件夹和驱动器名称都相同,但IDE无法使用以前创建的符号文件。
希望这项工作对其他人有用

在我的例子中,“linker->general”中的“use library dependency inputs”应该设置为yes,然后问题就解决了。

VS2015 C++

在尝试在VS2015中调试我的应用程序时,在取消符号加载后,我遇到了相同的问题。在此之后,VS2015拒绝加载我感兴趣的项目的符号(在C语言调用C++ + DLL的解决方案中的多个子项目)。上述解决方案对我不起作用,但这确实起了作用

对于Visual Studio 2015(C++),请执行以下操作:

  • 右键单击断点所在的项目,然后选择
    属性展开C/C++
  • 选择“C/C”下的“常规”++
  • 将调试信息格式更改为任何其他选项
  • 单击应用
  • 将调试信息格式更改回其默认的“程序” 用于编辑并继续(/ZI)(或任何您喜欢的内容)的数据库
  • 单击应用
  • 现在重建您的项目
  • 希望这有帮助。
    Alan M

    如果任何人在使用“附加到流程”时遇到此问题,此问题的答案为我解决了此问题:

    具体来说,在“附加到”选项中切换到“本机代码”,而不是“自动”。

    转到将使用该dll进行调试的网站的“属性”,然后在下面的“调试器”部分中选择“本机代码”:


    以上这些对我都没有帮助

    最后,我从Debug\X64改为Debug\win32,这很有帮助,可能是一些配置在两者中不一样。也许这将有助于 为某人解决问题

    希望这能帮助任何人。