Як налагоджувати програму без “Програми, отриманого сигналом SIGILL” за допомогою ядра 3.18 (3.12 працює)?


10

Я спробував налагодити програму з gdb в Raspbian, але все, що я отримую, це:

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

Не допомагає встановити SIGILLручку на nostop( handle SIGILL nostop):

Program received signal SIGILL, Illegal instruction.

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

Я отримую:

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

Якщо я запускаю програму поза gdb, я отримую звичайний виняток C ++ (що я хотів би налагодити).

Все програмне забезпечення було оновлено до останньої версії з репозиторіями raspbian. Далі я спробував основоположне ядро ​​малинового пі "3.18.9+", а також ядро ​​малинового "3.18.0-trunk-rpi" (мені потрібні спеціальні модулі ядра). Я можу налагоджувати ту саму програму на своїй основній машині без проблем.

Оновлення: Налагодження працює, як очікувалося, з ядром "3.12-1-rpi".

Що викликає цю помилку?


Ви пробували handle SIGILL pass nostop?
mpromonet

@mpromonet Оскільки passза замовчуванням встановлено, воно не повинно змінити значення, і воно не зробило жодного. Той самий результат, що і зhandle SIGILL nostop
someonr

І немає змістовного backtrace ( bt)? Я думаю, вам потрібно подумати над тим, щоб надати більше контексту, якщо ви серйозно очікуєте, що хтось пояснить "Що викликає цю помилку?" ґрунтуючись лише на незаконній інструкції в linker / loader ( ld-linux-armhf).
золотинки

Я не зміг отримати жодного змістовного зворотного зв'язку (див. Відредаговане запитання). Спробую створити невеликий приклад. Також мене бентежить, що я не отримую незаконне кодування без gdb.
someonr

1
стек здається розбитим, вальгринд міг би допомогти?
mpromonet

Відповіді:


4

Це виглядає точно так само, як у цьому питанні: https://github.com/raspberrypi/linux/isissue/766

Виправлено чотири дні тому.


Звучить багатообіцяюче. Буде перевірена пізніше. Thx для інформації.
someonr

@someonr ти перевірив?
thepang

sudo apt-get update; sudo apt-get upgrade; sudo rpi-updateвиправили проблему для мене, дозволивши мені використовувати continueтаhandle SIGILL nostop
morloch
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.