¿Cómo depurar sin "Programa recibido señal SIGILL" utilizando el kernel 3.18 (3.12 funciona)?


10

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 SIGILLidentificador 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?


¿Lo intentaste handle SIGILL pass nostop?
mpromonet

@mpromonet Dado que passestá configurado de forma predeterminada, no debería hacer una diferencia, y no hizo ninguna. El mismo resultado que conhandle SIGILL nostop
someonr

¿Y no hay retroceso significativo ( 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).
Ricitos de oro

No pude obtener ningún seguimiento significativo (ver pregunta editada). Intentaré crear un pequeño ejemplo. Además, estoy confundido de que no obtengo un código de operación ilegal sin gdb.
Someonr

1
stack parece destrozado, valgrind podría ayudar?
mpromonet

Respuestas:


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.