卸载重装N卡驱动后,VS(C++/SDL2)编译提示nvd3dum.pdb未找到求助
解决
nvd3dum.pdb could not be found 编译/调试错误 Hey,我之前帮朋友排查过几乎一模一样的问题——用DDU清掉NVIDIA驱动重装后,VS调试时就弹出这个pdb找不到的错误。结合你已经尝试的重装驱动、修复VS、下载系统符号这些操作,给你几个更精准的解决步骤:
添加NVIDIA专属符号服务器
Windows默认的符号服务器只包含系统组件的符号,nvd3dum.pdb是NVIDIA显卡驱动的私有符号,系统符号库根本没有。你得手动加NVIDIA的符号源:- 打开VS的
Tools -> Options -> Debugging -> Symbols - 在
Symbol file (.pdb) locations里添加上https://developer.download.nvidia.com/compute/cuda/redist/cuda_debugger/symbols/ - 建议勾选
Search the above locations only when symbols are loaded manually,不然每次调试都自动跑过去下载,慢得要死 - 要么点击
Load all symbols预加载,要么等调试时右键缺失的模块选Load Symbols
- 打开VS的
彻底清理驱动残留后重装
DDU卸载有时候也会漏点东西,导致驱动组件不全:- 重启进安全模式,再用DDU扫一遍NVIDIA驱动卸载干净,然后手动删掉
C:\Program Files\NVIDIA Corporation和C:\Program Files (x86)\NVIDIA Corporation这俩文件夹 - 去NVIDIA官网手动下载对应显卡的最新正式版驱动(别用GeForce Experience自动装,选自定义安装,一定要勾“执行全新安装”)
- 安装时别只勾核心显卡驱动,把能选的组件都带上——虽然pdb主要和图形驱动相关,但完整安装能避免奇怪的依赖问题
- 重启进安全模式,再用DDU扫一遍NVIDIA驱动卸载干净,然后手动删掉
检查VS符号缓存的权限和路径
你修复了VS,但符号缓存路径可能有读写问题:- 还是在
Tools -> Options -> Debugging -> Symbols里,看看Cache symbols in this directory的路径是不是在系统盘?建议改成非系统盘的路径,比如D:\VS_Symbol_Cache,还要确保这个文件夹你有读写权限 - 把当前缓存文件夹里的东西全删了,重启VS再试编译调试
- 检查项目调试配置:右键项目→
Properties -> Debugging,确保Debugger Type是Auto或者Native Only(如果是C++项目),混合调试类型很容易搞砸符号加载
- 还是在
手动定位并加载pdb
如果上面都不行,就手动找pdb:- 装个WinDbg(从Windows SDK里就能装),输入
!sym noisy开详细日志,加载你的程序后就能看到nvd3dum.pdb的具体版本号和GUID - 拿着版本号去刚才加的NVIDIA符号服务器里手动下载对应的pdb文件
- 回到VS调试时,打开“Modules”窗口,右键
nvd3dum.dll,选“Load Symbols From -> Symbol Path”,指向你下载的pdb所在位置就行
- 装个WinDbg(从Windows SDK里就能装),输入
内容的提问来源于stack exchange,提问作者AutobahnPolizei
相关产品推荐
相关产品推荐

