2008-09-20 6 views
1

Je veux déboguer une application dans Visual Studio mais j'ai seulement le code source pour 1 classe. J'ai seulement besoin de passer par une seule fonction dans ce fichier, mais je ne comprends pas ce dont j'ai besoin pour le faire. Je pense que les étapes sont normalement quelque chose comme ceci:Pouvez-vous déboguer une application .NET avec SEULEMENT le code source d'un fichier?

  1. Ouvrir un fichier dans VS
  2. charge dans les "symboles" (fichier .pdb)
  3. ANNEXER au processus en cours

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

Répondre

7

Vous avez besoin de fichiers * .pdb (étape 2 à partir de votre message) Ces fichiers contiennent le 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.

Breakpoints and Tracepoints in Visual Studio

Si vous ne disposez pas de fichiers PDB vous pouvez essayer de décompiler votre projet en utilisant Reflector.FileDisassembler ou FileGenerator For Reflector. Ils vous pouvez recompiler ces fichiers pour obtenir des PDB

Jetez également un oeil à Deblector - addin de débogage pour réflecteur.

1

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

MSDN: PDB Files

Le débogueur Visual Studio utilise le chemin de l'APB dans le fichier EXE ou DLL pour trouver le fichier project.pdb. Si le débogueur ne trouve pas 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, le débogueur recherche le chemin contenant le fichier EXE suivi des chemins de symboles spécifiés 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.

0

Le fichier de symboles est le fichier .pdb. Si vous placez cela à côté de l'exectuable, cela va charger les symboles et pointer vers le fichier source.

0

Dans votre cas 'Symboles' signifie un fichier pdb pour l'ensemble que vous voulez déboguer. Le débogueur n'exige pas que vous ayez toute la source, juste que vous avez le pdb correspondant. Le pdb est généré pendant la construction de l'assemblage, et vous ne pouvez malheureusement pas en créer un après coup. Si vous n'avez 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 la connexion. Dans ce cas, définissez simplement un point d'arrêt sur la source et faites tout ce qui est nécessaire pour que ce code s'exécute, et vous atteindrez le point d'arrêt.

Si vous ne l'avez pas construit, vous devez trouver le pdb pour l'assemblage. La fenêtre de modules trouvée sous Debug/Windows/Modules peut souvent vous aider en vous disant les assemblys chargés dans le processus avec les informations de version et les horodatages.

Vous aurez besoin de cette information 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 de builds d'intégration continue).

espérons que cela aide.

Questions connexes