Question

Je souhaite déboguer une application dans Visual Studio, mais je n'ai UNIQUEMENT le code source que pour une classe. Je n'ai besoin que de parcourir une seule fonction de ce fichier, mais je ne comprends pas ce dont j'ai besoin pour le faire. Je pense que les étapes ressemblent normalement à ceci:

  1. Ouvrir un fichier dans VS
  2. Charger dans les "symboles" (Fichier .PDB)
  3. Joindre au processus en cours

Je sais comment faire les numéros 1 et 3, mais je ne sais pas comment faire le numéro 2 sans le fichier .PDB. Est-il possible de générer le fichier .PDB pour que cela fonctionne? Merci!

Était-ce utile?

La solution

Vous avez besoin des fichiers * .pdb (étape 2 de votre publication). Ces fichiers contiennent un mappage entre le code source et l'assembly compilé. Donc, votre démarche est correcte. Si votre fichier source présente des différences avec le fichier d'origine, cochez la case "Autoriser le code source à être différent de la version d'origine". dans la boîte de dialogue des propriétés de BP.

Points d'arrêt et points de trace dans Visual Studio

Si vous n'avez pas de fichiers PDB, vous pouvez essayer de décompiler votre projet à l'aide de Reflector.FileDisassembler. ou FileGenerator pour le réflecteur . Ils vous permettent de recompiler ces fichiers pour obtenir des PDB

Jetez également un coup d’œil à Deblector - complément de débogage pour Reflector.

Autres conseils

Vous avez besoin du fichier de symbole (.PDB) appartenant à l'application que vous essayez de déboguer.

MSDN: fichiers PDB

  

Le débogueur Visual Studio utilise le chemin d'accès à la base de données PDB dans le fichier EXE ou DLL pour rechercher le fichier project.pdb. Si le débogueur ne peut pas trouver le fichier PDB à cet emplacement ou si le chemin n'est pas valide, par exemple si le projet a été déplacé sur un autre ordinateur, il recherche le chemin contenant le fichier EXE suivi du chemin des symboles spécifié dans la boîte de dialogue Options. . Ce chemin est généralement le dossier de débogage dans le nœud Symboles. Le débogueur ne chargera pas un PDB qui ne correspond pas au binaire en cours de débogage.

Le fichier de symboles est le fichier .pdb. Si vous le placez à côté de l'exécutable, les symboles seront chargés et le fichier source pointé.

Dans votre cas, "Symboles" désigne un fichier pdb pour l’ensemble que vous souhaitez déboguer. Le débogueur ne nécessite pas que vous ayez toutes les sources, mais simplement le pdb correspondant. La pdb est générée lors de la construction de l'assemblage, et vous ne pouvez malheureusement pas en créer une après coup. Si vous ne possédez pas le pdb, vous devrez déboguer à un niveau inférieur au code source.

Si vous avez construit l'assemblage sur votre machine, les symboles seront trouvés lors de l'attachement. Dans ce cas, il vous suffit de définir un point d'arrêt sur la source et de faire tout ce qui est nécessaire pour que ce code soit exécuté. Vous atteindrez le point d'arrêt.

Si vous ne l'avez pas construit, vous devez trouver la base de données pour l'assemblage. La fenêtre de modules située sous Debug / Windows / Modules peut souvent vous aider en vous indiquant les assemblys chargés dans le processus, ainsi que les informations sur la version et l'horodatage.

Vous aurez besoin de ces informations dans les cas où il pourrait y avoir plusieurs versions d'un assemblage (par exemple, conserver de nombreuses versions nocturnes ou les 20 dernières versions des versions à intégration continue).

espérons que cela aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top