83 votes

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 premières étapes à partir 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

Ces fichiers sont dans le bon répertoire, alors pourquoi ne peut-il pas les ouvrir ? Que dois-je faire pour résoudre ce problème ?

0 votes

Que voulez-vous dire par "dans le bon répertoire" ? La PDB se trouve-t-elle dans le même dossier que la DLL ?

1 votes

@harper : Considérant que les bibliothèques en question sont des fichiers système Windows, les PDBs ne sont probablement pas supposée doit être dans le même dossier que la DLL. Les DLL se trouvent dans le dossier C:\Windows\SysWOW64 mais les symboles PDB seront probablement dans le répertoire de cache des symboles que vous avez conçu. Celui que vous spécifiez dans les options de débogage de Visual Studio.

0 votes

@Cody Gray : Pouvez-vous copier les PDB dans le répertoire (manuellement) ou devez-vous utiliser les Symbol Servers de Microsoft (Source) ?

123voto

seanlitow Points 399

Modifiez d'abord les paramètres suivants :

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

Ensuite, appuyez sur Ctrl + F5 et vous verrez des choses étonnantes.

2 votes

Wow ! C'était génial ! Merci pour cette réponse. +1 pour vous !

0 votes

Juste pour être clair, cela ne téléchargera les symboles qu'une seule fois, n'est-ce pas ? Cela ne m'empêchera pas du tout de travailler hors ligne ?

1 votes

Connaissez-vous un lien direct pour le télécharger ? Je travaille dans un réseau fermé sans accès à Internet.

20voto

Cody Gray Points 102261

Je suis presque sûr que ce sont avertissements et non des erreurs. Votre projet devrait toujours fonctionner correctement.

Cependant, puisque vous devriez toujours essayer de corriger les avertissements du compilateur, voyons ce que nous pouvons découvrir. Je ne suis pas du tout familier avec OpenCV, et vous n'avez 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-bit de Windows (comme en témoigne le dossier "SysWOW64" dans le chemin vers les fichiers DLL), mais le matériel OpenCV que vous essayez est construit pour une plate-forme 32-bit. Vous devrez donc reconstruire le projet en utilisant CMake, comme expliqué ci-dessous. aquí .

Plus précisément, les fichiers qui sont répertoriés sont des fichiers du système Windows. Les fichiers PDB contiennent des informations de débogage que Visual Studio utilise pour vous permettre d'accéder au code compilé et de le déboguer. En fait, vous n'avez pas besoin des fichiers PDB des bibliothèques système pour pouvoir déboguer votre propre code. Mais si vous le souhaitez, vous pouvez télécharger les symboles pour les bibliothèques du système également. Allez dans le menu "Debug", cliquez sur "Options and Settings", et faites défiler la liste à droite jusqu'à ce que vous voyiez "Enable source server support". Assurez-vous que cette option est cochée. Ensuite, dans l'arborescence à gauche, cliquez sur "Symboles", et assurez-vous que l'option "Microsoft Symbol Servers" est sélectionnée. Cliquez sur OK pour fermer la boîte de dialogue, puis essayez de reconstruire.

7 votes

Je ne suis pas vraiment sûr de ce que je suis censé dire en réponse à ça. Cherchez-vous à obtenir plus d'aide ? Ou est-ce que tu laisses juste un commentaire ? Parce que si tu veux plus d'aide, tu vas devoir expliquer ce que tu veux dire. exactement a mal tourné quand vous avez "essayé ça" et ce que vous entendez par "ça n'a pas marché". Nous sommes tous des programmeurs, vous savez que ce n'est pas comme ça qu'on remplit un rapport de bug utile.

0 votes

Désolé, pour une raison quelconque, mon message n'a pas été collé en entier. Mais depuis, je l'ai réparé en utilisant la méthode suivante. stackoverflow.com/questions/1468726/

8voto

Muhammad Zia Points 144

PDB est un fichier d'informations de débogage utilisé par Visual Studio. Il s'agit de DLLs système pour lesquelles vous n'avez pas de symboles de débogage. Allez dans Outils->Options->Débogage->Symboles et cochez la case "Microsoft Symbol Servers", Visual Studio téléchargera les PDBs automatiquement. Vous pouvez également ignorer ces avertissements si vous n'avez pas besoin de voir la pile d'appels correcte dans ces modules.

3voto

J'ai eu le même problème. Il s'avère que, en compilant un projet que j'ai obtenu de quelqu'un d'autre, je n'ai pas défini le bon projet StartUp (clic droit sur le projet de démarrage souhaité dans l'explorateur de solutions et choisir "set as StartUp Project"). Peut-être que cela vous aidera, merci.

1voto

Mpi Points 11

En se référant au premier fil de discussion / une autre possibilité VS ne peut pas ouvrir ou trouver le fichier pdb du processus est lorsque vous avez votre exécutable en cours d'exécution en arrière-plan. Je travaillais avec mpiexec et j'ai rencontré ce problème. Toujours vérifier votre gestionnaire de tâches et tuer tout processus d'exécution que vous allez construire dans votre projet. Une fois que je l'ai fait, le débogage et la construction se sont bien déroulés.

De plus, si vous essayez de continuer avec l'avertissement, les points d'arrêt ne seront pas atteints et l'exécutable actuel ne sera pas disponible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X