Mensaje de error: no se puede encontrar o abrir el archivo PDB

Intenté ejecutar progtwigs de muestra en el sitio oficial de NVIDIA . La mayoría de los progtwigs funcionaron sin problemas, excepto en algunos casos en los que recibo mensajes de error similares. ¿Cómo puedo arreglar eso? Aquí hay una muestra del mensaje de error que obtuve después de ejecutar un progtwig llamado “MatrixMul”.

Nota: He instalado x32 y x64 NVIDIA CUDA Toolkit v5.0 en mi sistema operativo Window7x64.

'matrixMul.exe': Loaded 'C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0\bin\win32\Debug\matrixMul.exe', Symbols loaded. 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Program Files (x86)\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin\cudart32_50_35.dll', Binary was not built with debug information. 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\apphelp.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\AppPatch\AcLayers.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\sspicli.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\msvcrt.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\rpcrt4.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\cryptbase.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\sechost.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\user32.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\gdi32.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\lpk.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\usp10.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\advapi32.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\shell32.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\shlwapi.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\ole32.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\oleaut32.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\userenv.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\profapi.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\winspool.drv', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\mpr.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\imm32.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\msctf.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\nvinit.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\nvcuda.dll', Binary was not built with debug information. 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\setupapi.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\cfgmgr32.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\devobj.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\dwmapi.dll', Cannot find or open the PDB file 'matrixMul.exe': Unloaded 'C:\Windows\SysWOW64\dwmapi.dll' 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\nvapi.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\version.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\wintrust.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\crypt32.dll', Cannot find or open the PDB file 'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\msasn1.dll', Cannot find or open the PDB file The thread 'Win32 Thread' (0x12fc) has exited with code 0 (0x0). The thread 'Win32 Thread' (0x18a0) has exited with code 0 (0x0). The program '[3104] matrixMul.exe: Native' has exited with code 0 (0x0) 

El archivo PDB es un archivo específico de Visual Studio que tiene los símbolos de depuración para su proyecto. Puedes ignorar esos mensajes, a menos que esperes entrar en el código de esos dlls con el depurador (lo cual es dudoso, ya que esos son dlls del sistema). En otras palabras, puede y debe ignorarlos, ya que no tendrá los archivos PDB para ninguno de esos archivos DLL (de manera predeterminada, al menos, resulta que puede obtenerlos al depurarlos a través del Servidor de símbolos de Microsoft ). Todo lo que significa es que cuando establece un punto de interrupción y avanza por el código, no podrá entrar en ninguno de esos dlls (que de todos modos no le gustaría hacer).

Para completar, esta es la descripción oficial de PDB de MSDN:

Un archivo de base de datos de progtwig (PDB) contiene depuración e información de estado del proyecto que permite el enlace incremental de una configuración de depuración de su progtwig. Se crea un archivo PDB cuando comstack un progtwig C / C ++ con / ZI o / Zi

También para referencia futura, si desea tener archivos PDB para su propio código, tendría que construir su proyecto con las opciones / ZI o / Zi habilitadas (puede configurarlas mediante las propiedades del proyecto -> C / C ++ – -> General, luego configure el campo para “Formato de información de depuración”). No es relevante para su situación, pero pensé que podría ser útil en el futuro

Trabajando con VS 2013. Pruebe las siguientes herramientas -> Opciones -> Depuración -> Ventana de salida -> Mensajes de carga de módulo -> Desactivado Deshabilitará la visualización de los módulos cargados.

Si ese mensaje le molesta, debe ejecutar Visual Studio con derechos administrativos para aplicar esta dirección en Visual Studio.

Herramientas-> Opciones-> Depuración-> Símbolos y seleccione la casilla “Servidores de símbolos de Microsoft”, marque cargar todos los módulos y luego haga clic en Cargar todos los símbolos.

Todo lo demás Visual Studio lo hará por usted, y tendrá este mensaje en Depurar en la ventana de resultados “Native” ha salido con el código 0 (0x0) ”

  1. Compruebe si la configuración Generar información de depuración es Sí, que está en la pestaña Probetas del proyecto> Propiedades de configuración> Enlazador> Depuración. Si no, intente cambiarlo a Sí.

  2. Esos pdb perticulares (para ntdll.dll, mscoree.dll, kernel32.dll, etc.) son para la API de Windows y no deberían ser necesarios para aplicaciones simples. Sin embargo, si no puede encontrar los pdb para sus propios proyectos comstackdos, le sugiero que se asegure de que las Propiedades del proyecto> Propiedades de configuración> Depuración> Directorio de trabajo utilicen el valor de Propiedades del proyecto> Propiedades de configuración> General> Directorio de salida.

  3. Debe ejecutar Visual c ++ en el modo “Ejecutar como administrador”. Haga clic derecho sobre el ejecutable y haga clic en “Ejecutar como administrador”.

También soy un novato en CUDA / Visual Studio y encontré el mismo problema con algunas de las muestras. Si ejecuta DEBUG-> Iniciar la depuración, y luego sobrepasa repetidas veces (F10) verá que la ventana de salida aparece y se llena. La ejecución normal devuelve el estado de finalización 0x0 (como lo observó) y la ventana de salida se cierra.

Si esto sucede en Visual Studio, limpie su proyecto y ejecútelo nuevamente.

Build -> Clean Solution

Ejecutar (o F5)