J'ai essayé de déboguer un programme avec gdb dans Raspbian, mais tout ce que j'obtiens est:
Program received signal SIGILL, Illegal instruction.
0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3
Il n'est pas utile de définir le SIGILL
handle sur nostop
( handle SIGILL nostop
):
Program received signal SIGILL, Illegal instruction.
Program terminated with signal SIGILL, Illegal instruction.
The program no longer exists.
Toute trace que je reçois est:
#0 0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3
#1 0x00000000 in ?? ()
Si je démarre le programme en dehors de gdb, j'obtiens une exception C ++ normale (que je voudrais déboguer).
Tous les logiciels ont été mis à jour vers la dernière version à partir des référentiels raspbian. De plus, j'ai essayé le noyau de fondation raspberry pi "3.18.9+" et aussi le noyau raspbain "3.18.0-trunk-rpi" (j'ai besoin de modules de noyau personnalisés). Je peux déboguer le même programme sur ma machine principale sans aucun problème.
Mise à jour: le débogage fonctionne comme prévu avec le noyau "3.12-1-rpi".
Qu'est ce qui cause cette erreur?
pass
est par défaut défini, cela ne devrait pas faire de différence, et il n'en a fait aucune. Même résultat qu'avechandle SIGILL nostop
bt
)? Je pense que vous devez penser à fournir plus de contexte ici si vous vous attendez sérieusement à ce que quelqu'un explique "Qu'est-ce qui cause cette erreur?" basé uniquement sur une instruction illégale dans l'éditeur de liens / chargeur ( ld-linux-armhf
).
handle SIGILL pass nostop
?