Sunday, May 6, 2007

Instalar MonoDebugger(mdb) en Ubuntu 7.07

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:

Néstor said...

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.

Johan.Hernandez said...

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