web-dev-qa-db-fra.com

Pourquoi Visual Studio 2010 ne parvient-il pas à trouver/ouvrir les fichiers PDB?

J'essaie d'utiliser OpenCV dans VS 2010. Je suis un amateur et j'apprends les premiers pas du wiki OpenCV. Cependant, lorsque j'essaie de déboguer mon projet, j'obtiens les erreurs suivantes:

'C:\Windows\SysWOW64\ntdll.dll', impossible de trouver ou d'ouvrir le fichier PDB 'C:\Windows\SysWOW64\kernel32.dll', impossible de trouver ou d'ouvrir le fichier PDB 'C:\Windows\SysWOW64\kernellbase.dll', impossible de trouver ou d'ouvrir le fichier PDB

J'ai ces fichiers dans le bon répertoire, alors pourquoi ne peut-il pas les ouvrir? Que dois-je faire pour résoudre le problème?

77

Commencez par modifier les paramètres suivants:

Outils -> Options -> Débogage -> Symboles -> Serveur -> Oui

Puis appuyez Ctrl+F5 et vous verrez des choses incroyables.

123
seanlitow

Je suis à peu près sûr que ce sont warnings, pas des erreurs. Votre projet devrait quand même bien fonctionner.

Cependant, comme vous devriez toujours essayer de corriger les avertissements du compilateur, voyons ce que nous pouvons découvrir. Je ne connais pas du tout OpenCV et vous ne créez pas de lien vers le tutoriel wiki que vous suivez. Mais il me semble que le problème est que vous exécutez une version 64 bits de Windows (comme en témoigne le dossier "SysWOW64" dans le chemin des fichiers DLL), mais les fichiers OpenCV que vous ' re try est conçu pour une plate-forme 32 bits. Vous devrez donc peut-être reconstruire le projet en utilisant CMake, comme expliqué ici .

Plus spécifiquement, les fichiers répertoriés sont des fichiers système Windows. Les fichiers PDB contiennent des informations de débogage utilisées par Visual Studio pour vous permettre d'entrer et de déboguer le code compilé. Vous n'avez pas réellement besoin des fichiers PDB pour que les bibliothèques système puissent déboguer votre propre code. Mais si vous le souhaitez, vous pouvez également télécharger les symboles pour les bibliothèques système. Allez dans le menu "Déboguer", cliquez sur "Options et paramètres" et faites défiler la liste déroulante sur la droite jusqu'à ce que "Activer la prise en charge du serveur source" s'affiche. Assurez-vous que cette option est cochée . Puis, dans l'arborescence située à gauche, cliquez sur "Symboles" et assurez-vous que l'option "Serveurs Microsoft Symbol" est sélectionnée. Cliquez sur OK pour fermer la boîte de dialogue, puis essayez de la reconstruire.

19
Cody Gray

Visual Studio Community Edition 2015

Avoir cette erreur toute la journée. Je l'ai finalement résolu en allant dans Outils> Paramètres d'importation et d'exportation> Réinitialiser toutes les options> Réinitialiser les paramètres généraux.

Une fois cette réinitialisation effectuée, sélectionnez Outils> Options> Débogage> Symboles> - puis cochez la case en regard de Microsoft Symbol Servers.

Exécutez votre application en mode débogage. Des fenêtres indiquant que les symboles à télécharger pour un tas de fichiers .dll différents sont téléchargés sont alors affichées. Laissez-le finir de faire ça.

Une fois terminé, cela devrait fonctionner à nouveau.

8
Nobody

J'ai eu le même problème. Il s'avère que, en compilant un projet que j'ai reçu de quelqu'un d'autre, je n'ai pas défini le projet de démarrage approprié (cliquez avec le bouton droit de la souris sur le projet de démarrage souhaité dans l'explorateur de solutions et sélectionnez "Définir comme projet de démarrage"). Peut-être que cela aidera, applaudissements.

3
Jurek Stefanowicz

Pour VS2013 les utilisateurs qui se retrouvent ici comme moi:

Tools -> Options -> Debugging -> Symbols

Vous verrez que le champ Cache symbols in this directory: est vide. vous pouvez soit parcourir/entrer le chemin vous-même, soit simplement aller de l'avant et cliquer sur le bouton Load all symbols. Une fenêtre d'alerte apparaîtra indiquant "Comme vous n'avez pas sélectionné de répertoire de cache de symboles, la valeur par défaut sera utilisée". Vous verrez maintenant C:\Users\XXXX\AppData\Local\Temp\SymbolCache dans le champ de chemin précédemment vide. Cliquez sur Load all symbols une seconde fois et vous devriez être configuré. Hit ok, et juste par souci de diligence, nettoyez et reconstruisez votre solution.

2
ahall

En vous référant au premier fil/une autre possibilité, VS ne peut pas ouvrir ou trouver le fichier pdb du processus lorsque votre exécutable est exécuté en arrière-plan. Je travaillais avec mpiexec et ai rencontré ce problème. Vérifiez toujours votre gestionnaire de tâches et supprimez tout processus d’exécution que vous allez intégrer à votre projet. Une fois que j'ai fait cela, cela a débogué ou construit correctement. 

De plus, si vous essayez de continuer avec l'avertissement, les points d'arrêt ne seront pas touchés et l'exécutable en cours ne sera pas atteint. 

1
Mpi

J'ai rencontré le même problème. Lorsque j'ai exécuté mon test unitaire sur du code C++, j'ai reçu une erreur disant "Impossible de trouver ou d'ouvrir le fichier PDB".

Journaux

Lorsque j'ai consulté le journal de sortie dans Visual Studio, j'ai constaté qu'il cherchait dans le mauvais dossier. J'avais renommé le dossier WinUnit, mais quelque chose dans le code WinUnit cherchait le fichier PDB en utilisant l'ancien nom du dossier. Je suppose qu'ils l'ont codé en dur.

Trouvé le problème

Lorsque j'ai téléchargé et décompressé les fichiers WinUnit pour la première fois, le dossier principal s'appelait "WinUnit-1.2.0909.1". Après avoir décompressé le fichier, j'ai renommé le dossier en "WinUnit", car il est plus facile de taper pendant l'installation du projet Visual Studio. Mais apparemment, cela a brisé la possibilité de trouver le fichier PDB, même si j'ai tout configuré conformément à la documentation WinUnit.

Mon Fix

J'ai changé le nom du dossier à l'original et cela fonctionne.

Bizarre.

0
user2384458

J'ai les mêmes avertissements. Je ne suis pas sûr que ce soit une question de 32 vs 64 bits. Je viens de charger les nouveaux symboles et certains problèmes ont été résolus, mais ceux concernant OpenCV persistent. Ceci est un extrait du résultat avec le problème résolu vs non résolu:

'OpenCV_helloworld.exe': Chargé 'C:\OpenCV2.2\bin\opencv_imgproc220d.dll', Impossible de trouver ou d'ouvrir le PDB fichier

'OpenCV_helloworld.exe': Chargé 'C:\WINDOWS\system32\imm32.dll', Symboles chargés (informations de source supprimées).

Le code quitte 0 au cas où quelqu'un le demanderait.

Le programme '[4424] OpenCV_helloworld.exe: Native' s'est terminé avec code 0 (0x0).

0
sparaflAsh

J'ai constaté que ces erreurs venaient parfois d'un manque d'autorisations lors de la compilation d'un projet. Je me suis donc lancé en tant qu'administrateur pour le faire fonctionner correctement.

0
SinisterRainbow

Avait le même problème ici, mais une solution différente a fonctionné.

Tout d'abord, j'ai essayé les solutions suivantes, dont aucune n'a fonctionné:

  1. Charger des symboles comme suggéré par seanlitow

  2. Supprimer/Ajouter une référence à PresentationFramework et PresentationCore

  3. Redémarrer le système

La solution consistait à undo les dernières modifications apportées à mon code. Je venais d'ajouter quelques boutons radio et des gestionnaires d'événements pour les événements cochés et non cochés. Après avoir supprimé mes dernières modifications, tout est compilé. J'ai ensuite ajouté mes modifications exact et tout compilé correctement. Je ne comprends pas pourquoi cela a fonctionné - la seule chose à laquelle je peux penser est un problème avec ma solution VS. Quoi qu'il en soit, si aucune des autres suggestions ne fonctionne, vous pouvez essayer de revenir à vos dernières modifications. REMARQUE: si vous fermez et rouvrez Visual Studio, l’historique des modifications est perdu. Vous pouvez donc essayer ceci avant de fermer VS.

0
Thomas Bailey

J'ai eu le même problème. Le débogage ne fonctionne pas avec les éléments fournis avec l'exécutable OpenCV. vous devez construire vos propres binaires.
Activez ensuite les serveurs Microsoft Symbol dans Debug-> options et paramètres-> debug-> symboles

0
john ktejik