2010-11-21 2 views
6

Je suis intéressé par la création d'un programme qui prendra le code C# et qui me permettra de passer par l'exécution de ce code ligne par ligne - un débogueur.Je veux créer mon propre débogueur C# - comment on ferait ça? Quels outils devrais-je utiliser?

Comment est-ce que je ferais ce projet sans avoir à écrire un compilateur C# entier? J'utilise Microsoft Visual Studio, mais je veux que mon logiciel soit aussi indépendant de leur implémentation de débogueur que possible.

+0

Rédaction d'une alternative de studio visuel? –

Répondre

5

Vous recherchez ICorDebug, l'API de débogage gérée.
Vous pouvez utiliser csc.exe pour compiler le code (inclus dans une installation .Net Framework standard et enveloppé par le CSharpCodeProvider class), puis exécuter l'assembly, attacher le débogueur et parcourir le code.

Notez que vous aurez probablement toujours besoin d'un analyseur syntaxique C# pour savoir où vous êtes dans la source.
Le fichier PDB contiendra certaines de ces informations; Je ne suis pas sûr de combien. Notez que la plupart des fonctionnalités du débogueur de VS que nous tenons pour acquises (en particulier la fenêtre de surveillance et les info-bulles variables) nécessiteront une ré-implémentation douloureuse. (Func-eval s)

+5

Vous n'avez pas besoin d'un analyseur pour vous déplacer. Le fichier PDB contient toutes les informations sur l'étendue de texte correspondant au "point de séquence". (Ce qui est différent de la définition C du «point de séquence», d'où les guillemets.) Vous avez besoin d'un analyseur si vous voulez une fenêtre de surveillance, un évaluateur d'expression, etc., mais vous n'avez besoin que d'analyser les expressions. Si vous décidez de ne pas autoriser lambdas, alors c'est un petit sous-ensemble à analyser. –

+0

@Eric: Merci; Je me demandais à ce sujet. VS n'utilise-t-il pas vraiment un analyseur pour afficher les points d'arrêt? – SLaks

+0

Évidemment, vous aurez besoin d'un analyseur pour les datatips. – SLaks

Questions connexes