Intenté depurar un programa con gdb en Raspbian, pero todo lo que obtengo es:
Program received signal SIGILL, Illegal instruction.
0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3
No ayuda establecer el SIGILL
identificador en nostop
( handle SIGILL nostop
):
Program received signal SIGILL, Illegal instruction.
Program terminated with signal SIGILL, Illegal instruction.
The program no longer exists.
Todo el rastreo que obtengo es:
#0 0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3
#1 0x00000000 in ?? ()
Si inicio el programa fuera de gdb, obtengo una excepción normal de C ++ (que me gustaría depurar).
Todo el software se actualizó a la última versión desde los repositorios raspbian. Además probé el núcleo básico de raspberry pi "3.18.9+" y también el núcleo raspbain "3.18.0-trunk-rpi" (necesito algunos módulos de núcleo personalizados). Puedo depurar el mismo programa en mi máquina principal sin ningún problema.
Actualización: la depuración funciona como se espera con el núcleo "3.12-1-rpi".
Que esta causando este error?
handle SIGILL pass nostop
?pass
está configurado de forma predeterminada, no debería hacer una diferencia, y no hizo ninguna. El mismo resultado que conhandle SIGILL nostop
bt
)? Creo que debe pensar en proporcionar más contexto aquí si espera seriamente que alguien le explique "¿Qué está causando este error?" basado solo en una instrucción ilegal en el enlazador / cargador (ld-linux-armhf
).Respuestas:
Esto se ve exactamente igual a este problema: https://github.com/raspberrypi/linux/issues/766
Solucionado hace cuatro días.
fuente
sudo apt-get update; sudo apt-get upgrade; sudo rpi-update
me arregló el problema, permitiéndome usarcontinue
yhandle SIGILL nostop