viernes, 21 de marzo de 2008

Mientras esperamos la integración de MonoDebugger: Tutorial de manejo de MDB (I)

Introducción

El depurador [1] es la herramienta más importante para el desarrollo. Con MDB se pueden depurar aplicaciones manejas y no manejadas. Debido a que posee una librería que permite añadir funcionalidades de depurado a las aplicaciones.

Versión actual

Tiene el codename Madrid, viene integrada con Mono 1.2.6. MonoDebugger está todavía bajo desarrollo y es un proyecto joven, algunos elementos están todavía inestables o con bugs, por esto es recomendable utilizar bugzilla para reportar los posibles errores.

Primeros pasos

Para poder utilizar el depurado en tu programa debes realizar la compilación con la opción -debug en mcs o en MonoDevelop compilarlo en DEBUG (por defecto).
$ mcs -debug hello.cs 
El depurador puede manejar código en 1.x y 2.x, pero no puede manejar genéricos.

Iniciando el depurador


Desde la línea de comandos introducimos una línea como la siguiente:

$ mdb Application.exe

para depurar una aplicación manejada o

$ mdb nativeapplication
para una aplicación nativa (no manejada).

Una forma alternativa es utilizar el comando file dentro de MDB para cargar la aplicación a depurar:
 $ mdb
(mdb) file Application.exe
Executable file: Application.exe.
(mdb)
Por defecto el depurador no iniciará la aplicación para ello utilizaremos el comando run o start:

$ mdb Application.exe
(mdb) run

Otra alternativa es utilizar cuando se va a iniciar el depurador la opción -run o -start, por ejemplo:

$ mdb -run Application.exe
La diferencia entre start y run está en que con start la aplicación inicia el depurado en la función Main, sin embargo run no se para en Main.

Paso de comandos a MDB

Existen 3 vías para manejar MDB utilizando comandos (2 las hemos visto ya):


1. Utilizando el comando run:
(mdb) run arg1 arg2 ...
 2. Utilizando el comando set:
(mdb) set args arg1 arg2 ...
3. Utilizando al invocar el depurador en la opción -run o -start:
$ mdb -run -args Application.exe arg1 arg2 ...

Otros comandos

Los veremos la segunda parte de este artículo.

Referencias


[1] - http://www.mono-project.com/Guide:Debugger

No hay comentarios:

Publicar un comentario

Durante estos meses hemos estado trabajando en una plataforma para agrupar a Grupos Locales de Desarrolladores bajo Mono, en breve estará disponible en codeplex.