Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 找不到调试信息或与visual studio';不匹配;s_C++_C_Visual Studio_Visual Studio 2008 - Fatal编程技术网

C++ 找不到调试信息或与visual studio';不匹配;s

C++ 找不到调试信息或与visual studio';不匹配;s,c++,c,visual-studio,visual-studio-2008,C++,C,Visual Studio,Visual Studio 2008,我复制了一个现有项目并重命名了文件夹。现在我在编译应用程序时遇到了这个错误 找不到调试信息或调试信息不匹配。没有加载符号。 是否要继续调试 如果单击“是”,它将编译并运行良好。但现在我必须处理这个信息。只是好奇我在项目属性中更改了什么以使其停止 pdb或程序数据库文件似乎丢失(基本上,路径已更改,编译器无法再找到)。有关更多信息,请参阅相关文章。主要原因是您没有匹配的pdb和exe 一些可能的解决办法: 您正在版本中编译,而不是调试 您需要清理/构建或重建 您没有在与exe相同的目录中生成pd

我复制了一个现有项目并重命名了文件夹。现在我在编译应用程序时遇到了这个错误

找不到调试信息或调试信息不匹配。没有加载符号。
是否要继续调试


如果单击“是”,它将编译并运行良好。但现在我必须处理这个信息。只是好奇我在项目属性中更改了什么以使其停止

pdb或程序数据库文件似乎丢失(基本上,路径已更改,编译器无法再找到)。有关更多信息,请参阅相关文章。

主要原因是您没有匹配的pdb和exe

一些可能的解决办法:

  • 您正在版本中编译,而不是调试
  • 您需要清理/构建或重建
  • 您没有在与exe相同的目录中生成pdb文件
  • 您有一个不匹配的pdb,可能复制的源代码比今天的日期更新,并且某些内容无法正常构建
  • 尝试清除所有调试对象文件
  • 您正在附加到从build exe和pdb所在的不同位置启动的进程
  • 重新启动Visual Studio

您可能已停用项目的调试信息:

  • 右键单击项目->属性
  • 配置属性->链接器->调试
  • 将“生成调试信息”从否切换为是

重建您的项目并重试,它现在应该在没有消息的情况下运行:)

我遇到了类似的问题,原因是我在另一个进程中运行了解决方案的一个项目,该进程无法终止。我没怎么想。因此,当我在一个单独的环境中构建解决方案时,其中一个pdb文件不匹配,因此最后我无法加载任何pdb文件。我刚重新启动了我的电脑,这就解决了它


祝你好运

我时不时会遇到这种情况,在调试代码和进行更改时,visual studio似乎会缓存pdb信息,有时会卡住。执行重建解决方案、删除pdb并创建新pdb并不能解决问题

当然,我有生成调试信息以及所有需要的信息,特别是因为这是在多次调试代码时发生的

VisualStudio似乎对内存中的pdb很满意,并且拒绝更新它,不管pdb中的时间戳甚至大小变化如何

重置此设置的唯一方法是退出VisualStudio(IDE)并重新启动它

在一些罕见的情况下,IDE可能仍在后台运行(process explorer在那里显示),并且可能会保持文件的句柄处于打开状态。可以在重新启动IDE之前终止进程


祝您好运

重新启动Visual Studio可以修复此问题的一个实例。

在解决方案浏览器中的项目上单击鼠标右键=>Clean=>Build。 如果您的构建生成了一个.pdb(查看您的目标目录)
如果没有,您应该按照其他帖子中提到的步骤启用调试

我遇到了同样的问题,并尝试了上述所有解决方案,但它对我没有帮助。 然后我随机地找到了一个新的解决方案,它成功了

解决方案是,如果您在一个解决方案中有许多项目,那么您应该将任何一个(您必须决定的特定项目)项目标记为“设置为启动项目”。 右键单击该特定项目,然后单击“设置为启动项目”


它对我很有效。

我在VS2012中遇到了这个错误。这肯定是由Visual Studio中的错误引起的,当主项目的本地PDB文件与整个可执行文件的最终PDB文件同名时(即使两者位于不同的目录中!)

考虑这个例子

解决方案由三个项目组成:
main
a
b
main
是可执行文件的顶级项目,而
a
b
是链接到
main
的库

在所有三个项目中,
$(IntDir)
变量设置为
$(SolutionDir)\$(配置)\$(ProjectName)\
。这意味着project
main
将其中间文件转储到
Debug\main\
,project
a
-转储到
Debug\a\
等等

C/C++->输出文件
设置中,所有三个项目都将
程序数据库文件名
值设置为
$(IntDir)$(TargetName).pdb
。这意味着project
main
将其本地PDB文件生成为
Debug\main\main.PDB
,project
b
生成为
Debug\b\b.PDB
,依此类推

最后,在项目
main
Linker->debug
设置中,
Generate Program Database File
值设置为
$(OutDir)$(TargetName).pdb
。这意味着整个可执行文件的全局PDB文件将生成为
Debug\main.PDB

请注意,在此设置中,每个PDB文件都在其自己的单独目录中生成

在此设置中,如果您尝试在调试器下运行程序,您将获得找不到调试信息或不匹配的调试信息。如果您查看
Debug\main.pdb
文件(将存在),您会注意到它与
Debug\main\main.pdb
文件完全相同!也就是说,
main
的本地PDB以某种方式覆盖了最终可执行文件的全局PDB。也就是说,调试器抱怨PDB文件“错误”是正确的。这的确是错误的

同样,在上面的设置中,最终的全局PDB以某种方式被顶级项目的本地PDB覆盖。我不知道为什么会这样。这似乎是一个错误。(注意
...\Custom Librarry (MyDll.dll(
...\Custom Librarry (MyDll.dll)