Comment déboguer sans «Programme reçu le signal SIGILL» en utilisant le noyau 3.18 (travaux 3.12)?


10

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


Avez-vous essayé handle SIGILL pass nostop?
mpromonet

@mpromonet Puisque passest 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
quelqu'un

Et il n'y a pas de trace significative ( 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).
goldilocks

Je n'ai pu obtenir aucune trace significative (voir la question modifiée). Je vais essayer de créer un petit exemple. De plus, je suis confus de ne pas obtenir un opcode illégal sans gdb.
quelqu'un

1
pile semble brisée, valgrind pourrait aider?
mpromonet

Réponses:


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.