MonoDebugger es una herramienta de linea de comandos que esta haciendo el equipo de Mono y aunque no es del todo poderosa, funciona. Intentando instalarla en mi Ubuntu 7.07 tuve problemas pero aqui esta como instalarlo correctamente.
Necesitaras tener instalado con sus dependencias: mono, subversion, autotools 1.9 o superior y nunit.
1) Descargar el source desde el svn de mono:
svn co svn://anonsvn.mono-project.com/source/trunk/debugger monodebugger
El comando descargara los fuentes del mdb y creara un directorio "monodebugger" en la carpeta actual.
2) Compilarlo:
Entramos en la carpeta "monodebugger":
cd monodebugger
Generamos los configuradores de la instalacion:
./autogen.sh --prefix=/usr/local
Compilamos:
make
Nota: Al momento en que se genero este post, existe un problema en el configurador del compilar el proyecto MonoDebugger.Test.dll el cual depende de nunit y da el siguiente error:
error CS0006: cannot find metadata file `nunit.framework'
Compilation failed: 1 error(s), 0 warnings
make[2]: *** [Mono.Debugger.Test.dll] Error 1
make[2]: Leaving directory `/home/jhernandez/monodebugger/build'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/jhernandez/monodebugger'
make: *** [all] Error 2
La solucion es editar el archivo build/Makefile.in y reemplazar la linea "-r:nunit.framework" por "-pkg:nunit" para que el compilador busque usando la utilidad pkg-config en vez de buscar nunit.framework.dll en los directorios por defecto. Luego intenta compilarlo nuevamente.
3) Instalar librerias en el GAC:
gacutil -i build/Mono.Debugger.Backend.dll
gacutil -i build/Mono.Debugger.Cecil.dll
gacutil -i build/Mono.Debugger.dll
gacutil -i build/Mono.Debugger.Frontend.dll
gacutil -i build/Mono.Debugger.Test.dll
4) Instalar mdb.
sudo make install
5) Ejecutar:
$mdb
Nota: Existe otro problema ubicando las librerias compartidas y te dara el siguiente error:
Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for Mono.Debugger.Frontend.CommandLineInterpreter ---> System.DllNotFoundException: monodebuggerserver
at (wrapper managed-to-native) Mono.Debugger.Frontend.CommandLineInterpreter:mono_debugger_server_static_init ()
at Mono.Debugger.Frontend.CommandLineInterpreter..cctor () [0x00000] --- End of inner exception stack trace ---
Para solucionarlo edita tu archivo $HOME/.bashrc con tu editor favorito y has lo siguiente de acuerdo a tu situacion:
export LD_LIBRARY_PATH='/usr/local/lib:'$LD_LIBRARY_PATH
Si instalaste Mono usando el Instalador Universal para linux, probablmente tengas el mono instalado en /opt/mono1.2.3.2 y en vez de usar "/usr/local/lib", debes usar "/opt/mono1.2.3.2/lib" donde 1.2.3.2 es la version de mono que instalaste.
No olvides cerrar y abrir la consola nuevamente despues de editar el archivo.
5) Usar Mdb
Despues de arreglar los inconvenientes anteriores podras usar mdb de la siguiente forma:
$mdb helloworld.exe
Mono Debugger
(mdb)
Teclea "run" y se ejecutara la aplicacion.
se detendra en las primeras lineas de ejecucion del metodo main, asi que para ir paso a paso en la ejecucion, teclea "n"(enter) o "s"(enter).
Aqui hay una
guia completa de como utilizar el debugger.
2 comments:
Una entrada muy interesante.
Tan solo hacer una pequeña anotación, cuando hagas el autogen, pasale el prefix=/usr que creo que los paquetes para ubuntu estan compilados así. Entonces con esto lograrás no tener que editar el .bashrc
Un saludo.
Hola nestor, gracias por el dato. Lo intente y no funciono en mi pc pero lo probare en una maquina virtual en limpio, probablemente tenga yo algo mal configurado o lo haya dañado jejeje.
A proposito, hoy mismo "meebey" acaba de publicar unos empaquetados .deb para debian y probablemente funcionan para ubuntu too. Se encuentran aqui:
http://debian.meebey.net/pkg-mono/mono-debugger
Post a Comment