2011-03-13 10 views
9

Estoy buscando una extensión para Visual Studio, donde en el modo de depuración es posible pasar un solo paso por el lenguaje intermedio al lado de C#.Depuración simultánea a través del lenguaje intermedio (IL) y C# en Visual Studio

No estoy buscando una solución para depurar código administrado y no administrado.

+0

Te será difícil encontrar eso. El mapeo del código de máquina a IL es tenue y altamente dependiente del jitter. Hay más de uno. –

+0

+1 por la frialdad de tal opción si está disponible. –

Respuesta

6

¿Cuál es su propósito? ¿Su IL generado por compilador de C# o producido dinámicamente en tiempo de ejecución? Si es el primero, puede usar un truco para volver a compilar su binario a través del ilasm.

  1. Compila el código C# como lo harías normalmente. No importa si está optimizado o no, pero debe especificar la opción de compilación para producir símbolos de PDB completos.
  2. Usa ildasm para convertir tu archivo binario a .il. Es la opción Volcar en el menú.
  3. volver a compilar el archivo .il para obtener un nuevo binario (y unos nuevos símbolos)

    ilasm .il [/ exe |/dll]/depuración

  4. Ahora al depurar que el montaje específico que verá el código IL en lugar del código C#. También verá a líneas coincidentes de archivo original C# si selecciona la opción apropiada en el paso 2.

Para el caso de IL generado dinámicamente, me basta con utilizar WinDbg with SOS extension. Puede volcar IL y atravesarlo, pero lleva un poco acostumbrarse.

+0

¿Podrían ser más específicos en la opción 2. ¿Qué quiere decir "seleccionar la opción adecuada"? – RayOldProf

0

No creo que sea necesario un desensamblador externo aquí. Cuando depure en VS 2010 (aunque no sea Express), puede hacer clic con el botón derecho en la ventana de código y seleccionar "Ir al desmontaje" para recorrer el código IL. ¿Podría ser eso lo que estás buscando? Leer más here

+8

Eso no es IL. Es la versión de ensamblaje del código jitted. –

Cuestiones relacionadas