¿Es de alguna manera posible detectar fallas de alineación de datos incluso en i386? Tal vez estableciendo un registro de máquina específica para i386 o algo así.x86: cómo detectar fallas de alineación de datos (también conocido como SIGBUS en sparc)
En Solaris-Sparc Estoy recibiendo un SIGBUS en este caso, pero en i386 todo está bien.
Medio Ambiente:
- 32-bit de aplicación
- Ubuntu Karmic
- gcc/g ++ v4.4.1
EDITAR: Aquí es por eso que estoy pidiendo esto:
- nuestra aplicación se bloquea en Sol-Sparc con SIGBUS. A los efectos de la depuración, trataría de obtener un comportamiento similar en nuestra plataforma i386.
- nuestra máquina Sol-sparc es muy lenta, por lo que la compilación y la depuración llevan mucho tiempo allí. Y nuestra máquina i386 es increíblemente rápida (8 núcleos, 32G de memoria).
- Incluso en las plataformas i386 hay un costo de rendimiento en las fallas de alineación de datos. Y, por lo tanto, me gustaría corregir las fallas de alineación de datos siempre que sea posible.
Parece que ejecutar las pruebas en 'qemu' (que puede apuntar a SPARC) puede ser más rápido que si se ejecutara en un hardware real. – ephemient
Nunca he probado qemu, pero eso parece interesante. ¿Funciona eso sin algún tipo de "ROM del sistema" o algo similar? –
El proyecto QEMU agrupa 'openbios-sparc', que es suficiente para permitir que' qemu-system-sparc' sea una máquina real. También hay 'qemu-sparc' que ejecuta solo un ejecutable Linux bajo emulación, traduciendo syscalls al kernel nativo. – ephemient