PDB文件、检查磁盘空间不足、无效路径或权限不足。

15

突然出现了这个错误,我不知道为什么。每次修改代码后,似乎会锁定pdb文件,因此我必须重新启动VS2010。

1>LINK : fatal error LNK1201: error writing to program database 'C:\code\MyProject\Debug\MyProject.pdb'; check for insufficient disk space, invalid path, or insufficient privilege
即使我清理了项目,它也不会删除这个文件。我已经尝试了Toni在这里提出的解决方案,但对我也没有用。当我像他建议的那样添加预构建路径时,我收到以下错误:

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(103,5): error MSB3073: 命令“C:\Program Files (x86)\Microsoft Visual Studio 10.0\freepdb MyProject 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(103,5): error MSB3073: :VCEnd”的退出代码为9009。


听起来调试服务没有关闭或释放pdb文件。可能需要重新安装它。 - Captain Obvlious
解决方案在这个问题的答案中描述。 - AlainD
5个回答

8
罪魁祸首是我安装的Deleaker来检测内存泄漏,看起来它阻止了调试器/pdb文件的运行。卸载后问题得到解决。

即使没有内存泄漏,这种情况仍然会发生。因此,这不可能是普遍适用的答案。 - stackoverblown

5
当我关闭进程管理器(sysinternal 工具 procexp64.exe)后,这对我有用。我使用它来检查线程内存使用情况。搜索该文件,然后关闭它。

enter image description here

[更新]: 您也可以像使用"Sysinternal的Process Explorer"一样高效地使用Windows"任务管理器"来定位任何僵尸句柄。 任务管理器|性能|打开资源监视器|CPU|关联句柄|搜索-> enter image description here

3

当我在两个不同版本的Visual Studio中使用单个pdb文件时,我遇到了类似的问题。关闭其中一个Visual Studio版本可以解决该问题。


在我的情况下,单个 Visual Studio 持有 pdb 并且在我在同一个 Visual Studio 中重新构建项目时没有更新它。我只是关闭了 VS,然后重新打开并重新构建项目,没有问题。 - displayName
在我的情况下,我只需要删除pdb文件,之后一切都正常工作了... - Žarko Tomičić

1
我遇到了类似的问题,原因是windbg正在持有所有的pdb文件,因此当Visual Studio尝试创建新的pdb文件时,它无法覆盖旧文件,因为这些文件正在被windbg使用。
因此,显而易见的问题是,每当Visual Studio无法用新的输出文件覆盖现有文件时,它就会输出以下错误信息。

0

您的防病毒软件正在阻止写入访问。请解除文件夹保护。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接