Come eseguire il debug senza "Programma ricevuto segnale SIGILL" utilizzando il kernel 3.18 (3.12 funziona)?


10

Ho provato a eseguire il debug di un programma con gdb in Raspbian, ma tutto quello che ottengo è:

Program received signal SIGILL, Illegal instruction.
0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3

Non aiuta a impostare l' SIGILLhandle su nostop( handle SIGILL nostop):

Program received signal SIGILL, Illegal instruction.

Program terminated with signal SIGILL, Illegal instruction.
The program no longer exists.

Tutto il backtrace che ottengo è:

#0  0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3
#1  0x00000000 in ?? ()

Se avvio il programma al di fuori di gdb, ottengo una normale eccezione C ++ (che vorrei eseguire il debug).

Tutti i software sono stati aggiornati all'ultima versione dai repository raspbian. Inoltre ho provato il kernel raspberry pi foundation "3.18.9+" e anche il kernel raspbain "3.18.0-trunk-rpi" (ho bisogno di alcuni moduli del kernel personalizzati). Posso eseguire il debug dello stesso programma sulla mia macchina principale senza problemi.

Aggiornamento: il debug funziona come previsto con il kernel "3.12-1-rpi".

Cosa sta causando questo errore?


Ci hai provato handle SIGILL pass nostop?
mpromonet,

@mpromonet Poiché passè impostato di default, non dovrebbe fare la differenza e non ha fatto nulla. Stesso risultato dihandle SIGILL nostop
someonr

E non c'è backtrace significativo ( bt)? Penso che devi pensare a fornire più contesto qui se ti aspetti seriamente che qualcuno spieghi "Che cosa sta causando questo errore?" basato solo su un'istruzione illegale nel linker / loader ( ld-linux-armhf).
Riccioli d'oro

Non è stato possibile ottenere alcun backtrace significativo (vedere la domanda modificata). Proverò a creare un piccolo esempio. Inoltre, sono confuso dal fatto che non ottengo un codice operativo illegale senza gdb.
someonr

1
lo stack sembra rotto, valgrind potrebbe aiutare?
mpromonet,

Risposte:


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.