web-dev-qa-db-fra.com

un fichier de symbole correspondant n'a pas été trouvé dans ce dossier

Je veux utiliser les symboles, mais je reçois cette erreur: 

un fichier de symbole correspondant n'a pas été trouvé dans ce dossier

Où est le problème?

59
user635409

Une des choses que j'ai rencontrées est due au fait que le débogage était désactivé sur le projet référencé où réside le code. Dans mon cas, j'ai créé une nouvelle configuration appelée "Developer" et le débogage a été désactivé par défaut.

  1. Clic droit sur le projet en question
  2. Propriétés
  3. Construire
  4. Avancé (coin inférieur droit)
  5. Définir les informations de débogage au maximum
  6. Recompiler
24
Kevin Aung

J'ai eu le même problème que @DmainEvent. Apparemment, la dll que j'utilisais n'était pas la même version que la pdb que je venais de compiler, alors j'ai eu le message d'erreur.

Si vous rencontrez ce problème, essayez d’utiliser la DLL et la pdb de la même compilation.

6
Jeff Piersol

J'ai essayé toutes les solutions possibles, finalement cela a fonctionné lorsque j'ai désactivé l'option Enable native code debugging sous le Debugger engines de Properties > Debug.

5

J'ai rencontré ce problème et la réponse était simple.

Visual studio a deux paramètres de niveau de projet pouvant créer des fichiers .pdb.

  1. Lieur: Propriétés de configuration -> lieur -> débogage -> générer Fichier de base de données du programme = "xxxx.pdb" 
  2. Compilateur: Propriétés de configuration -> C/C++ -> Fichiers de sortie -> Nom de fichier de la base de données du programme = "Yyyy.pdb"

Vous voulez n ° 1 pour le débogage. Oubliez la n ° 2. Donnez le fichier n ° 2 à un nom différent du fichier n ° 1 pour résoudre cette erreur.

Je ne sais pas pourquoi Microsoft spécifie le n ° 2 en tant que fichier .pdb. C'est juste déroutant.

3
C Johnson

Sans plus de détails sur ce que vous faites, il est difficile d'aller au-delà "le débogueur recherche un fichier de symbole qui correspond au code compilé et ne peut pas en trouver un dans le dossier contenant le code compilé".

Quelques points à considérer:

  1. Créez-vous des symboles dans le cadre de votre compilation? (vérifiez les propriétés du projet)
  2. Utilisez-vous un serveur de symboles (si oui, pointe-t-il au bon endroit)
  3. Ce code est-il compilé par un tiers? Dans ce cas, comme vous en avez apparemment la source, compilez-le vous-même.

Pensez à clarifier votre question si vous voulez une meilleure réponse. Surtout que voulez-vous dire par "je veux utiliser des symboles".

2
Massif

L'erreur que j'ai eu était "un fichier de symbole correspondant n'a pas été trouvé dans ce dossier" dans la fenêtre Debug => Modules même après que la DLL et le PDB étaient disponibles et construits ensemble, je ne pouvais donc pas déboguer dans la cible DLL référencé par mon projet principal.

Publier ceci ici au cas où cela aiderait quelqu'un à naviguer avec "Plateforme mixte" à construire pour la DLL cible. J'ai fait deux choses pour surmonter ceci:

  1. Dans la solution utilisant la DLL cible, décochez "Just My Code" dans Tools => Options => Debugging => General => Activer Just My Code (JMC).

  2. Cochez "Activer le débogage de code natif" dans la solution cible DLL dans les propriétés de projet correspondantes => Débogage.

1
bkolluru

J'ai trouvé que c'était parce que Propriétés => Déboguer => Action de démarrage était défini sur Démarrer un programme externe au lieu du projet. Ainsi, le fichier pdb nouvellement généré ne correspondait pas, car l'exe réel était le mauvais.

0
majjam

Pour les projets BizTalk (et autres), cela peut être dû au fait que vous essayez déjà de déboguer une version de l'Assemblée dans le GAC. Lorsque vous exécutez un test unitaire ou appuyez sur F5 pour déboguer, une nouvelle version est compilée localement. Cependant, la version du GAC est utilisée et le PDB nouvellement créé ne correspond pas au DLL du GAC.

Une solution consiste à désélectionner une construction pour tout sauf votre projet de test unitaire à l'aide de Configuration Manager, comme indiqué ci-dessous:

 Config Manager

0
Rob Bowman

Eh bien, la solution dépend de votre problème spécifique. J'ai essayé tout ce que l'on pouvait trouver sur Stackoverflow et d'autres sites. Un des fils que j'ai suivi est this . Cela n’a pas aidé aussi ... Le problème a été résolu dès que j’ai remarqué que mon projet executable ne contenait aucune référence à la library que je voulais déboguer. J'ai donc ajouté la référence à ce projet.

** PS: ** Ce problème peut également survenir car l'assembly référencé par l'exécutable Assembly peut ne pas correspondre à celui indiqué dans les références. Donc, dans ce cas, vous supprimez simplement la référence existante et ajoutez la nouvelle.

J'espère que cela t'aides!

0
arslanahmad656