Mensagem de erro: não é possível localizar ou abrir o arquivo PDB

Eu tentei executar programas de amostra fornecidos no site oficial da NVIDIA . A maioria dos programas funcionou sem problemas, exceto em alguns, onde recebi mensagens de erro semelhantes. Como posso consertar isso? Aqui está um exemplo de mensagem de erro que recebi depois de executar um programa chamado “MatrixMul”.

Nota: Instalei o NVIDIA CUDA Toolkit v5.0 x32 e x64 no meu sistema operacional 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) 

    O arquivo PDB é um arquivo específico do Visual Studio que possui os símbolos de debugging para o seu projeto. Você pode ignorar essas mensagens, a menos que você esteja esperando entrar no código dessas dlls com o depurador (o que é duvidoso, já que essas são dlls do sistema). Em outras palavras, você pode e deve ignorá-los, já que você não terá os arquivos PDB para qualquer um desses dlls (por padrão, pelo menos, você pode obtê-los quando depurar através do Microsoft Symbol Server ). Tudo o que isso significa é que quando você define um ponto de interrupção e está percorrendo o código, não será possível entrar em nenhuma dessas dlls (o que você não desejaria fazer de qualquer maneira).

    Apenas para completar, aqui está a descrição oficial do PDB no MSDN:

    Um arquivo de database do programa (PDB) contém informações de estado de debugging e projeto que permite vinculação incremental de uma configuração de debugging do seu programa. Um arquivo PDB é criado quando você compila um programa C / C ++ com / ZI ou / Zi

    Também para referência futura, se você quiser ter arquivos PDB para o seu próprio código, você teria que construir seu projeto com as opções / ZI ou / Zi ativadas (você pode defini-las através das propriedades do projeto -> C / C ++ – -> Geral, defina o campo para “Formato de Informação de Depuração”). Não é relevante para a sua situação, mas achei que poderia ser útil no futuro

    Trabalhando com o VS 2013. Tente as seguintes Ferramentas -> Opções -> Depuração -> Janela de Saída -> Mensagens de Carregamento do Módulo -> Off Desativará a exibição dos módulos carregados.

    Se essa mensagem incomodar você, você precisará executar o Visual Studio com direitos administrativos para aplicar essa direção no Visual Studio.

    Ferramentas-> Opções-> Depuração-> Símbolos e selecione a checkbox “Microsoft Symbol Servers”, marque todos os módulos e clique em Carregar todos os símbolos.

    Tudo o resto Visual Studio fará isso por você, e você terá essa mensagem em Debug na janela de saída “nativo ‘saiu com o código 0 (0 x 0)”

    1. Por favor, verifique se a configuração Gerar Informações de Depuração é Sim, em Propriedades do Projeto> Propriedades de Configuração> Vinculador> Depuração. Caso contrário, tente alterá-lo para Sim.

    2. Esses pdbs perticulares (para ntdll.dll, mscoree.dll, kernel32.dll, etc) são para a API do Windows e não devem ser necessários para aplicativos simples. No entanto, se você não conseguir encontrar pdbs para seus próprios projetos compilados, sugiro verificar se as propriedades do projeto> Propriedades de configuração> Depuração> Diretório de trabalho usa o valor de Propriedades do projeto> Propriedades de configuração> Geral> Diretório de saída.

    3. Você precisa executar o Visual c ++ no modo “Executar como administrador”. Clique direito no executável e clique em “Executar como administrador”

    Eu também sou um novato no CUDA / Visual Studio e encontrei o mesmo problema com algumas das amostras. Se você executar o comando DEBUG-> Iniciar Depuração, então, repetidamente, pisará (F10) e verá a janela de saída aparecer e ser preenchida. A execução normal retorna o status de conclusão nomal 0x0 (como você observou) e a janela de saída é fechada.

    Se isso acontecer no visual studio, limpe seu projeto e execute-o novamente.

    Construir -> Solução Limpa

    Executar (ou F5)