Compartir a través de


Visualización del código de desensamblado en el depurador de Visual Studio (C#, C++, Visual Basic, F#)

La ventana Desensamblado muestra el código de ensamblado correspondiente a las instrucciones creadas por el compilador. Si está depurando código administrado, estas instrucciones de ensamblado corresponden al código nativo creado por el compilador Just-In-Time (JIT), no al lenguaje intermedio de Microsoft (MSIL) creado por el compilador de Visual Studio.

Nota:

Para aprovechar al máximo la ventana Desensamblado , comprenda o aprenda los conceptos básicos de la programación del lenguaje de ensamblado. El material de referencia para los conjuntos de instrucciones Intel se encuentra en el segundo volumen de los manuales de arquitectura. Este material se aplica generalmente también a los conjuntos de instrucciones AMD.

Esta característica solo está disponible si está habilitada la depuración en el nivel de dirección. No está disponible para la depuración de scripts ni de SQL.

Además de las instrucciones de ensamblado, la ventana Desensamblado puede mostrar la siguiente información opcional:

  • Dirección de memoria donde se encuentra cada instrucción. En el caso de las aplicaciones nativas, es la dirección de memoria real. Para Visual Basic o C#, es un desplazamiento desde el inicio de la función.

  • Código fuente del que deriva el código de ensamblado.

  • Bytes de código, esto es, representaciones en bytes de las instrucciones máquina o MSIL reales.

  • Nombres de símbolos para las direcciones de memoria.

  • Números de línea correspondientes al código fuente.

Las instrucciones del lenguaje ensamblado constan de mnemonics, que son abreviaturas de nombres de instrucción y símbolos para variables, registros y constantes. Cada instrucción de lenguaje automático se representa mediante un mnemónico de lenguaje ensamblado seguido opcionalmente por uno o varios símbolos.

El código de ensamblado se basa en gran medida en los registros del procesador o, en el caso del código administrado, en los registros del tiempo de ejecución de lenguaje común. Puede usar la ventana Desensamblado junto con la ventana Registros , que permite examinar el contenido del registro.

Para ver las instrucciones de código máquina en su formato numérico bruto, en lugar de como lenguaje de ensamblaje, use la ventana Memoria o seleccione Código de bytes en el menú contextual de la ventana Desensamblado.

Uso de la ventana Desensamblado

Para habilitar la ventana Desensamblado, en Herramientas>Opciones>Depuración, seleccione Habilitar depuración de nivel de dirección.

Para abrir la ventana Desensamblado durante la depuración, seleccione Depurar>Windows>Desensamblado o presione Ctrl + Alt + D.

Nota:

Los cuadros de diálogo y los comandos de menú que vea pueden diferir de los descritos en este artículo en función de la configuración o edición activa. Para cambiar la configuración, elija Importar y Exportar Configuración en el menú Herramientas. Para obtener más información, consulte Restablecer todas las opciones de configuración.

Para activar o desactivar la información opcional, haga clic con el botón derecho en la ventana Desensamblado y establezca o desactive las opciones deseadas en el menú contextual.

Una flecha amarilla en el margen izquierdo marca el punto de ejecución actual. En el caso del código nativo, el punto de ejecución corresponde al contador de programa de la CPU. Esta ubicación muestra la siguiente instrucción que se ejecutará en el programa.

Retroceder o avanzar en la memoria

Al ver el contenido de la memoria en una ventana Memoria o en la ventana Desensamblado , puede usar la barra de desplazamiento vertical para subir o bajar en el espacio de memoria.

  1. Para desplazarse hacia abajo (desplácese a una dirección de memoria superior), haga clic en la barra de desplazamiento vertical debajo del cuadro de desplazamiento.

  2. Para desplazarse hacia arriba (desplácese a una dirección de memoria inferior), haga clic en la barra de desplazamiento vertical situada encima del pulgar.

    También observará que la barra de desplazamiento vertical funciona de forma no estándar. El espacio de direcciones de un equipo moderno es muy grande, y sería fácil perderse tomando el pulgar de la barra de desplazamiento y arrastrándolo a una ubicación aleatoria. Por este motivo, el cuadro de desplazamiento se comporta como un resorte y siempre permanece en el centro de la barra de desplazamiento. En las aplicaciones en código nativo, puede retroceder o avanzar una página, pero no puede desplazarse libremente por la ventana.

    En las aplicaciones administradas, el desensamblaje se limita a una función y se puede desplazar normalmente.

    Observará que las direcciones superiores aparecen en la parte inferior de la ventana. Para ver una dirección alta, debe desplazarse hacia abajo, no hacia arriba.

Subir o bajar una instrucción

  • Haga clic en la flecha situada en la parte superior o inferior de la barra de desplazamiento vertical.