with studio link library instalar como c++ android-ndk porting

c++ - studio - ¿Qué causa la señal ''SIGILL''?



cmake android studio (3)

Ahora funciona. Para cualquier otra persona que tenga problemas con Android / NDK / GCC / Eclipse, así es como lo resolví:

  1. Enterrar a un gato muerto a la medianoche cuando la luna llena
  2. Reiniciar el emulador de dispositivo Android

No he verificado si ambos pasos son realmente necesarios y, de no ser así, cuál es redundante.

Estoy portando un código C ++ a Android usando NDK y GCC. El código básicamente se ejecuta. En un punto, cuando se depura en Eclipse, la llamada

Dabbler::Android::Factory* pFactory = new Dabbler::Android::Factory;

causa este error:

Thread [1] (Suspended: Signal ''SIGILL'' received. Description: Illegal instruction.)
1 <symbol is not available> 0x812feb44

Qué significa eso? ¿El compilador generó código ilegal por algún motivo? Tengo un punto de interrupción en el constructor (que no hace nada), y no se golpea. Ya hice una reconstrucción completa.

¿Qué podría estar haciendo mal para causar este problema?


Podría ser algún puntero a la función no inicializada, en particular si tiene una memoria dañada (entonces, la vtable falsa de los punteros malos de C ++ a los objetos no válidos podría dar eso).

Por cierto, los puntos de observación y puntos de rastreo de gdb , y también valgrind podrían ser útiles (si están disponibles) para depurar dichos problemas. O algún desinfectante de direcciones .


Significa que la CPU intentó ejecutar una instrucción que no entendió. Esto podría ser causado por la corrupción, supongo, o tal vez se ha compilado para la arquitectura incorrecta (en cuyo caso, habría pensado que el O / S se negaría a ejecutar el ejecutable). No estoy del todo seguro de cuál es el problema de raíz.