Raspbian gdb ile bir programda hata ayıklamaya çalıştım, ama tüm elde:
Program received signal SIGILL, Illegal instruction.
0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3
SIGILL
Tanıtıcıyı nostop
( handle SIGILL nostop
) olarak ayarlamak yardımcı olmaz :
Program received signal SIGILL, Illegal instruction.
Program terminated with signal SIGILL, Illegal instruction.
The program no longer exists.
Aldığım tüm backtrace:
#0 0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3
#1 0x00000000 in ?? ()
Programı gdb dışında başlatırsam, normal bir C ++ istisnası alıyorum (hata ayıklamak istiyorum).
Tüm yazılımlar raspbian depolarından en son sürüme güncellendi. Ayrıca ahududu pi vakıf çekirdeği "3.18.9+" ve ayrıca raspbain çekirdeği "3.18.0-gövde-rpi" (bazı özel çekirdek modüllerine ihtiyacım var) denedim. Aynı programı ana makinemde herhangi bir sorun olmadan hata ayıklayabilirim.
Güncelleme: Hata ayıklama "3.12-1-rpi" çekirdeğinde beklendiği gibi çalışıyor.
Bu hataya ne sebep oluyor?
pass
Varsayılan olarak ayarlandığından, bir fark yaratmamalıdır ve herhangi bir fark yaratmamıştır . handle SIGILL nostop
bt
) yok mu? Bence birisinin "Bu hataya ne sebep oluyor?" yalnızca bağlayıcıdaki / yükleyicideki ( ld-linux-armhf
) yasadışı bir talimatı temel alır .
handle SIGILL pass nostop
mi