J'ai essayé d'exécuter des exemples de programmes fournis sur site officiel de NVIDIA . La plupart des programmes se sont déroulés sans heurts, sauf quelques-uns où des messages d'erreur similaires ont été générés. Comment puis-je résoudre ce problème? Voici un exemple de message d'erreur que j'ai reçu après avoir exécuté un programme nommé "MatrixMul".
Remarque: j’ai installé les versions x32 et x64 NVIDIA CUDA Toolkit v5.0 sur mon système d’exploitation 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)
Le fichier PDB est un fichier spécifique à Visual Studio qui contient les symboles de débogage pour votre projet. Vous pouvez ignorer ces messages, sauf si vous espérez entrer dans le code de ces DLL avec le débogueur (ce qui est douteux, car ce sont des dll système). En d'autres termes, vous pouvez et devez les ignorer, car vous ne disposerez pas des fichiers PDB pour ces dll (au moins par défaut, il s'avère que vous pouvez les obtenir lors du débogage via le Microsoft Symbol Server ). Tout ce que cela signifie, c'est que lorsque vous définissez un point d'arrêt et parcourez le code, vous ne pourrez pas accéder à ces dll (ce que vous ne voudriez pas faire de toute façon).
Juste pour être complet, voici la description officielle de PDB de MSDN:
Un fichier de base de données de programmes (PDB) contient les informations de débogage et d’état du projet qui permettent la liaison incrémentielle d’une configuration de débogage de votre programme. Un fichier PDB est créé lorsque vous compilez un programme C/C++ avec/ZI ou/Zi
Aussi, pour référence future, si vous souhaitez avoir des fichiers PDB pour votre propre code, vous devrez construire votre projet avec les options/ZI ou/Zi activées (vous pouvez les définir via les propriétés du projet -> C/C++ - -> Général, puis définissez le champ pour "Format des informations de débogage"). Pas pertinent pour votre situation, mais j'ai pensé que cela pourrait être utile à l'avenir
Utilisation de VS 2013. Essayez les outils suivants -> Options -> Débogage -> Fenêtre de sortie -> Messages de chargement de module -> Désactivé Cela désactivera l’affichage des modules chargés.
Si ce message vous dérange, vous devez exécuter Visual Studio avec des droits d'administrateur pour appliquer cette instruction à Visual Studio.
Outils-> Options-> Débogage-> Symboles et cochez la case "Serveurs Microsoft Symbol", cochez la case Charger tous les modules puis cliquez sur Charger tous les symboles.
Tout le reste, Visual Studio le fera pour vous et vous aurez ce message sous Debug dans la fenêtre de sortie "Native" s'est terminé avec le code 0 (0x0) "
Veuillez vérifier si le paramètre Générer les informations de débogage est Oui, sous l'onglet Propriétés du projet> Propriétés de configuration> Éditeur de liens> onglet Débogage. Sinon, essayez de le changer en Oui.
Ces pdb spécifiques (pour ntdll.dll, mscoree.dll, kernel32.dll, etc.) sont destinés à l'API Windows et ne devraient pas être nécessaires pour des applications simples. Cependant, si vous ne trouvez pas de pdb pour vos propres projets compilés, je vous suggère de vous assurer que Propriétés du projet> Propriétés de configuration> Débogage> Répertoire de travail utilise la valeur de Propriétés du projet> Propriétés de configuration> Général> Répertoire de sortie.
Vous devez exécuter Visual c ++ en mode "Exécuter en tant qu'administrateur". Cliquez à droite sur l'exécutable, puis cliquez sur "Exécuter en tant qu'administrateur".
Je suis aussi un débutant chez CUDA/Visual studio et j'ai rencontré le même problème avec quelques échantillons. Si vous exécutez DEBUG-> Start Debugging, puis répétez plusieurs étapes (F10), la fenêtre de sortie apparaîtra et sera remplie. L'exécution normale renvoie l'état d'achèvement nomal 0x0 (comme vous l'avez observé) et la fenêtre de sortie est fermée.
Si cela se produit dans Visual Studio, nettoyez votre projet et exécutez-le à nouveau.
Construire -> Solution propre
Run (ou F5)