Я спробував налагодити програму з 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".
Що викликає цю помилку?
pass
за замовчуванням встановлено, воно не повинно змінити значення, і воно не зробило жодного. Той самий результат, що і зhandle SIGILL nostop
bt
)? Я думаю, вам потрібно подумати над тим, щоб надати більше контексту, якщо ви серйозно очікуєте, що хтось пояснить "Що викликає цю помилку?" ґрунтуючись лише на незаконній інструкції в linker / loader ( ld-linux-armhf
).
handle SIGILL pass nostop
?