VS Code, C# y Ubuntu: Debug de aplicación de consola

Si hay algo que me gusta como desarrollador y geek es contar con más de un sistema operativo instalado, contando generalmente con Windows y Ubuntu (o uno de sus derivados). Y con la nueva línea de trabajo que Microsoft está llevando adelante asociada a Open Source se nos abren muchas más alternativas para poder desarrollar en la plataforma que más nos guste, cosa que antes no era posible.

Y ante esto como usuario de este nuevo enfoque quería escribir sobre un punto muy interesante que tenemos disponible: realizar debug de una aplicación de consola realizada en C# en Ubuntu con VS Code (y en Linux en general).

Lo único que debemos tener instalado como dependencias es el paquete asociado a mono, el cual podremos instalar siguiendo lo comentado en el post Configurando Autocomplete/OmniSharp en Ubuntu.

Lo primero que deberemos hacer es crear la aplicación en cuestión. Para ello ejecutaremos en la terminal el comando yo aspnet en la carpeta donde queramos crear nuestro proyecto y elegimos la opción “Console Application” (para ver la instalación de Yeoman les recomiendo la lectura del post ASP.NET Core en Linux):

VSCodeDebugUbuntu - CrearApp

Luego lo que haremos será abrir la carpeta creada en el punto anterior con VS Code. Lo primero que nos advertirá es que debemos restaurar las dependencias, para lo cual presionamos la opción “Restore“:

VSCodeDebugUbuntu - RestaurarDependencias

Ello abrirá una terminal para proceder a la restauración de las dependencias. Ahora nos quedarán los dos puntos en cuestión: compilar la aplicación y realizar el debug de la misma.

 

Compilación:

Como siempre con VS Code, presionamos el comando Ctrl+Shift+B asociado a la compilación el cual por ser la primera vez nos pedirá configurar el ejecutor de tareas. En el mismo seleccionaremos la opción “Others” para que nos genere el archivo en cuestión, sobre el cual reemplazaremos su contenido por el siguiente:

Donde Program.cs es el programa en cuestión que deseamos compilar. Si nuevamente presionamos el comando de compilación efectivamente veremos sobre el panel de archivos que se ha creado el exe asociado. A su vez estamos indicando el argumento -debug, el cual nos permitirá luego justamente poder aplicar el debug sobre la aplicación compilada.

VSCodeDebugUbuntu - ExeCreado

 

Debug:

Es aquí donde viene lo más interesante del post. Lo que haremos es aplicar la configuración de ejecución, para lo cual presionamos F5 y dentro de las opciones para crear seleccionamos la correspondiente a “C# Mono“. Luego de que esté creada reemplazamos el archivo creado por el siguiente:

Donde Program.exe es el resultado de la compilación previa. Un punto a destacar es el atributo preLaunchTask con el cual indicamos la tarea que queremos que ejecute antes de lanzar la aplicación. En este caso si nos fijamos el valor usado es el nombre que definimos para la tarea de compilación en el archivo tasks.json, de modo que siempre antes de ejecutar se efectuará la compilación de nuestra aplicación.

Si volvemos a presionar el comando de ejecución veremos que la misma se ejecuta de forma correcta:

VSCodeDebugUbuntu - AppEnEjecucion

Lo que nos queda ahora es probar el debug, para lo cual podremos agregar los puntos de interrupción presionando a la izquierda del número de línea asociado. Si ahora ejecutamos nuestra aplicación efectivamente veremos que se nos activa el indicador de ejecución en la parte superior de VS Code. Además de contar con el panel de Debug desde donde podremos ver la pila de llamadas, las variables en ejecución y la opción de inspeccionar:

VSCodeDebugUbuntu - PanelDebug

A su vez les dejo el siguiente video donde se puede apreciar la interacción completa del debug en VS Code en Ubuntu:

VSCodeDebugUbuntu - DebugEnAccion.gif

Como podemos apreciar el comportamiento es el esperado! 😀

Espero que les sea útil, les dejo el link de la fuente usada de referencia: Debugging C# on OS X with Visual Studio Code

Gracias por leer!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s