Sunday, June 13, 2010

Debugueando TORO con ECLIPSE+QEMU en WIN64 , parte 2

Bueno luego de mucho trabajo he logrado construir un entorno para compilar y testear TORO muy rápidamente utilizando ECLIPSE y emulando TORO sobre QEMU. Básicamente lo que hace ECLIPSE es ser la interfaz gráfica entre GDB y QEMU. Para esto estoy utilizando GDB en forma de debug remoto , caracterisca que esta presente en QEMU. Para entusiarmarlos aqui les pongo un pequeño video en Win64, esta medio desprolijo pero prometo hace un buen tutorial hacerca de eso.



Por otro lado estoy creando un paquete(como se en el video) con todas los ejecutables incluidos de forma de que simplemente sea bajar y ejecutar ECLIPSE, sin necesitar ninguna otra herramienta más.
El mismo procedimiento lo he hecho en Linux y funciona bien , como muestran los screenshot del post anterior.

Un saludo .
Matias E. Vara
www.torokernel.org

Monday, April 12, 2010

Debugueando TORO en Eclipse+QEMU sobre Win64

Al intentar hacer lo mismo sobre Windows me encontré con un grave error en la aplicación GDB. Recordemos que para hacer el Debug , la IDE se conecta al gdbserver a traves del gdb cliente (gdb.exe).Al intenter introducir breakpoints , ocurria el siguiente error :
"Remote 'g' packet reply is too long:
> 0000000000000000000000000000000000000000000000002306000 "
Esto pasa cuando la maquina virtual llega al breakpoint y el gdbserver le enviaba información acerca del estado de la maquina al cliente . Luego de buscar este problema en otros foros , no encontré ninguna solución. Con cambiar la arquitectura, debería ser suficiente :

"SET ARCHITECTURE I386:X86-64:INTEL"

.En Linux esto funciono bien , pero no en Windows. Lo que ocurre es que cuando el cliente gdb se conecta a qemu , este le informa que los tamaños de registros corresponden al de una maquina en modo real de 16 bits. Pero cuando uno pone un breakpoint en el código de toro, la maquina virtual se encuentra en Modo Long con registros de 64bits , con lo cual el paquete enviado sobrepasa el tamaño fijado al comienzo de la conexion y gdb tira ese error.
Lo que hice fue recompilar gdb-7.0 en Win64 y aplicar un parche sencillo por el momento, pero que funciona muy bien. Subiré mi versión de GDB en el próximo paquete que estoy construyendo con todas las herramientas para compilar y testear TORO incluidas.

Saludos.
Matias E. Vara

Monday, April 05, 2010

Debugueando TORO en Eclipse+QEMU

Hola, luego de mucho tiempo buscando la herramienta ideal para compilar y testear toro rapidamente creo haberla encontrado. Casi de casualidad me encontre con la IDE Eclipse y la posibilidad de debugear Linux desde la IDE , y por otro lado encontre un plug-in para dar soporte al lenguaje pascal desde Eclipse. Uniendo estas dos herramientas pude compilar y ejecutar toro paso a paso , linea por linea , colocar breakpoints , etc . Resulto ser una muy potente herramienta que permitira encontrar problemas facilmente. Estoy utilizando la ultima version de Eclipse en un Ubuntu de 64 bits.
Aqui subo un par de screen para motivarlos. Todavia no lo tengo funcionando al 100% .
Pantallas de la ejecucion paso a paso :





Esta es la ventana de qemu que estaba utilizando.




Saludos.

Thursday, January 07, 2010

Lazarus + GDB + QEMU

Estoy trabajando duro para obtener una plataforma para compilar y testear TORO de forma rapida y facil . Para esto estoy haciendo modificaciones sobre el codigo de Lazarus . Lazarus es una IDE para el compilador FREEPASCAL. Estas modificaciones haces posible que cuando se ejecuta "RUN" en la IDE , esta realiza :
- Genera toro.exe
- Genera la imagen booteable de toro .
- Corre QEMU
- Permite debuguear TORO directamente desde la IDE utilizando un cliente GDB.

Saludos.
Matias E. Vara.