Pregunta

Estoy trabajando en la escritura de un sistema operativo y estoy corriendo en problemas tratando de depurar el código. Estoy usando GDB para conectarse al talón de GDB Bochs' a 'a distancia' depurar el kernel. Conexión funciona bien, al igual que los símbolos de depuración de carga desde el archivo del kernel. Me puse un punto de interrupción para la función kmain, que se encuentra con éxito, y se rompe el depurador correctamente (dentro de mi núcleo). Sin embargo, no puedo "paso" o "junto" a través de mi código, ni puede parecer BGF determinar qué línea de código es la línea actual.

Cuando trato de "paso", me sale el siguiente mensaje: "No se puede encontrar límites de la función actual". Este es el único mensaje de error que consigo en cualquier momento.

Mi código está siendo compilado en GCC con la bandera -g (He probado otros tipos de información de depuración utilizando las opciones del CCG;. Ninguno ha trabajado) He tratado de mirar a través del manual de GDB, así como la búsqueda de la respuesta y estoy totalmente confundido. Cualquier ayuda sería increíble.

Gracias!

¿Fue útil?

Solución

Bueno, tengo la depuración de trabajo, pero tuve que cambiar emuladores. Yo era capaz de conseguir GDB de trabajo con Qemu, a pesar de que también tenía problemas para hacerlo. Para obtener el BGF para conectarse a la gdbserver Qemu, tenía que pasar a la siguiente opción Qemu: "tcp -gdb :: 1234, IPv4". Me llevó para siempre a darse cuenta de eso ... Depuración funciona perfectamente ahora!

Otros consejos

googlear vomita "Esto se debe a que cuando conectado a gdbserver, el proceso en virtud depuración no ha completado el código de inicio de C" http: // www .cygwin.com / ml / gDB / 2005-03 / msg00237.html ... http://www.bravegnu.org/gnu-eprog/c-startup.html describe el proceso para cuando se está codificando para dispositivos embebidos, tal vez esto ayude?

Si encuentras la respuesta por favor, puesto aquí como me gustaría saber cuál es la solución al problema es demasiado.

No sé por qué, pero bochs con GDB-trozo habilitadas parece ser exigente con las opciones de configuración. En algún sistema siguientes opciones romperlo: --enable-x86-64, --enable-vmx

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top