2010-11-21 9 views
6

Estoy interesado en hacer un programa que tome el código C# y me permita pasar por la ejecución de ese código línea por línea, un depurador.Quiero hacer mi propio depurador de C# - ¿cómo lo haría uno? ¿Qué herramientas debería usar?

¿Cómo me gustaría ir sobre este proyecto sin tener que escribir un compilador C# completo? Estoy usando Microsoft Visual Studio, pero quiero que mi software sea tan independiente de la implementación de su depurador como sea posible.

+0

¿Escribiendo una alternativa de estudio visual? –

Respuesta

5

Está buscando ICorDebug, la API de depuración administrada.
Puede usar csc.exe para compilar el código (esto se incluye en una instalación .Net Framework estándar y envuelto por CSharpCodeProvider class), luego ejecute el ensamblaje, conecte el depurador y recorra el código.

Tenga en cuenta que probablemente todavía necesite un C# analizador para averiguar dónde se encuentra en la fuente.
El archivo PDB contendrá parte de esta información; No estoy seguro de cuánto.

Tenga en cuenta que la mayoría de las características en el depurador de VS que damos por sentado (especialmente la ventana de Inspección y la información sobre herramientas variable) requerirán una reimplementación dolorosa. (Func-eval s)

+5

No necesita un analizador solo para dar un paso. El archivo PDB contiene toda la información sobre qué extensión de texto corresponde a qué "punto de secuencia". (Que es diferente de la definición C de "punto de secuencia", de ahí las comillas.) Necesita un analizador si desea una ventana de observación, un evaluador de expresiones, etc., pero, por supuesto, solo necesita analizar expresiones. Si decides no permitir lambdas, entonces es un subconjunto bastante pequeño para analizar. –

+0

@Eric: Gracias; Me he estado preguntando sobre eso. ¿Realmente VS no usa un analizador para mostrar puntos de interrupción? – SLaks

+0

Obviamente, necesitará un analizador para obtener información. – SLaks

Cuestiones relacionadas