Depuración con Visual Studio para Mac

Importante

Visual Studio para Mac está programado para su retirada el 31 de agosto de 31, 2024 de acuerdo con la directiva de ciclo de vida moderno de Microsoft. Aunque puede seguir trabajando con Visual Studio para Mac, hay otras opciones para desarrolladores en Mac, como la versión preliminar de la nueva extensión del Kit de desarrollo de C# para VS Code.

Obtenga más información sobre las escalas de tiempo de soporte técnico y las alternativas.

Visual Studio para Mac tiene depuradores compatibles con las aplicaciones .NET Core, .NET Framework, Unity y Xamarin.

Visual Studio para Mac usa Mono Soft Debugger, que está implementado en el entorno de ejecución Mono, lo que permite a Visual Studio para Mac depurar código administrado en todas las plataformas.

Depurador

Visual Studio para Mac usa Mono Soft Debugger para depurar código administrado (C# o F#) en todas las aplicaciones de Xamarin. Mono Soft Debugger difiere de los depuradores normales en que se trata de un depurador cooperativo que está integrado en el entorno de ejecución Mono; el código generado y el entorno de ejecución Mono cooperan con el IDE para proporcionar una experiencia de depuración. El entorno de ejecución Mono expone la funcionalidad de depuración a través de un protocolo de conexión sobre el que puede leer más en la documentación de Mono.

Los depuradores como LLDB o GDB controlan el programa sin el conocimiento o la cooperación del programa depurado. Todavía puede ser útil al depurar aplicaciones de Xamarin si necesita depurar código nativo de iOS o Android.

En el caso de las aplicaciones de .NET Core y ASP.NET Core, Visual Studio para Mac usa el depurador de .NET Core. Este depurador también es un depurador cooperativo y funciona con el entorno de ejecución de .NET.

Empleo del depurador

Para empezar a depurar cualquier aplicación, asegúrese siempre de que la configuración esté establecida en Depurar. La configuración de depuración proporciona un útil conjunto de herramientas para permitir la depuración, como los puntos de interrupción, el uso de visualizadores de datos y la visualización de la pila de llamadas:

Debug configuration

Establecer un punto de interrupción

Para establecer un punto de interrupción en el IDE, haga clic en el margen del editor, junto al número de línea del código en el que quiere interrumpir:

Setting breakpoint in margin

Puede ver todos los puntos de interrupción que se han establecido en el código si va a la ventana Puntos de interrupción:

List of breakpoints

Iniciar depuración

Para iniciar la depuración, seleccione el explorador, dispositivo o simulador/emulador de destino:

Debug configurationSelect target device

Luego implemente la aplicación haciendo clic en el botón Reproducir o presionar Cmd + Entrar. Cuando se alcance un punto de interrupción, el código se resaltará en amarillo:

Highlight showing breakpoint has been hit

En este punto se pueden usar herramientas de depuración, como la usada para inspeccionar los valores de objetos, para obtener más información sobre lo que sucede en el código:

Debug visualizations

Puntos de interrupción condicionales

También puede establecer reglas que dictan las circunstancias en las que debería ocurrir un punto de interrupción. Esto se conoce como agregar un punto de interrupción condicional. Para establecer un punto de interrupción condicional, obtenga acceso a la ventana Propiedades del punto de interrupción, lo cual puede hacerse de dos maneras:

  • Para agregar un nuevo punto de interrupción condicional, haga clic con el botón derecho en el margen del editor, a la izquierda del número de línea del código para el que quiere establecer un punto de interrupción y seleccione Nuevo punto de interrupción:

Breakpoint context menu

  • Para agregar una condición a un punto de interrupción existente, haga clic con el botón derecho en el punto de interrupción y seleccione Propiedades de punto de interrupción o bien, en la ventana Puntos de interrupción, seleccione el botón Editar punto de interrupción que se muestra a continuación:

Edit existing Breakpoint in Breakpoints Window

Luego puede escribir la condición bajo la que quiere que se produzca el punto de interrupción:

Edit Breakpoint conditions

Ejecución paso a paso del código

Cuando se ha alcanzado un punto de interrupción, las herramientas de depuración permiten obtener el control sobre la ejecución del programa. Visual Studio para Mac muestra cuatro botones que permiten ejecutar y recorrer el código. En Visual Studio para Mac, tendrán un aspecto similar al siguiente:

Buttons to step through code

Estos son los cuatro botones:

  • Reproducir: inicia la ejecución del código hasta el siguiente punto de interrupción.
  • Paso a paso por procedimientos: ejecuta la siguiente línea de código. Si la siguiente línea es una llamada a función, Paso a paso por procedimientos ejecuta la función y se detiene en la siguiente línea de código después de la función.
  • Depurar paso a paso con instrucciones: también ejecuta la siguiente línea de código. Si la siguiente línea es una llamada de función, Depurar paso a paso con instrucciones se detendrá en la primera línea de la función, lo que le permitirá continuar con la depuración línea por línea de la función. Si la línea siguiente no es una función, se comportará igual que Paso a paso por procedimientos.
  • Paso a paso para salir: vuelve a la línea en la que se ha llamado a la función actual.

Cambio de la instrucción que se ejecuta a continuación

Cuando el depurador está pausado, hay una flecha en el margen que indica qué línea de código se ejecutará a continuación. Puede seleccionar la flecha y arrastrarla a otra línea de código para cambiar la instrucción que se ejecutará. Puede conseguir lo mismo haciendo clic con el botón derecho en una línea de código y seleccionando Establecer instrucción siguiente en el menú contextual.

Drag and drop arrow to set next statement

Precaución

El cambio de la línea de ejecución actual puede producir un comportamiento inesperado en una aplicación. También hay algunas condiciones en las que no es posible cambiar la siguiente instrucción que se va a ejecutar. Por ejemplo, si se arrastra la flecha de un método a otro, no funcionará. En estos casos no admitidos, Visual Studio para Mac mostrará un cuadro de diálogo que le indicará que no es posible cambiar la línea de ejecución actual.

Depuración de bibliotecas de clases de Mono

Los productos de Xamarin se distribuyen con el código fuente de las bibliotecas de clases de Mono, que se puede usar para ver cómo funcionan las cosas con el depurador.

Puesto que esta característica consume más memoria durante la depuración, está desactivada de forma predeterminada.

Para habilitar esta característica, vaya a Visual Studio para Mac > Preferencias > Depurador y asegúrese de que la opción "Depuración paso a paso por instrucciones del código externo" esté seleccionada, como se ilustra a continuación:

Step into external code option

Consulte también