Wie kann ich ohne "Programm empfangenes Signal SIGILL" mit dem 3.18-Kernel debuggen (3.12 funktioniert)?

10

Ich habe versucht, ein Programm mit gdb in Raspbian zu debuggen, aber alles, was ich bekomme, ist:

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

Es hilft nicht, das SIGILLHandle auf nostop( handle SIGILL nostop) zu setzen:

Program received signal SIGILL, Illegal instruction.

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

Alle Rückverfolgung, die ich bekomme, ist:

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

Wenn ich das Programm außerhalb von gdb starte, erhalte ich eine normale C ++ - Ausnahme (die ich debuggen möchte).

Die gesamte Software wurde aus den Raspbian-Repositories auf die neueste Version aktualisiert. Außerdem habe ich den Himbeer-Pi-Foundation-Kernel "3.18.9+" und auch den Himbeer-Kernel "3.18.0-trunk-rpi" ausprobiert (ich benötige einige benutzerdefinierte Kernel-Module). Ich kann das gleiche Programm problemlos auf meinem Hauptcomputer debuggen.

Update: Das Debuggen funktioniert wie erwartet mit dem Kernel "3.12-1-rpi".

Was verursacht diesen Fehler?

irgendwann
quelle
Hast du es versucht handle SIGILL pass nostop?
Promonet
@mpromonet Da dies passstandardmäßig festgelegt ist, sollte es keinen Unterschied machen, und es hat keinen Unterschied gemacht. Gleiches Ergebnis wie mithandle SIGILL nostop
am
Und es gibt keine sinnvolle Rückverfolgung ( bt)? Ich denke, Sie müssen darüber nachdenken, hier mehr Kontext bereitzustellen, wenn Sie ernsthaft erwarten, dass jemand erklärt: "Was verursacht diesen Fehler?" basiert nur auf einer illegalen Anweisung im Linker / Loader ( ld-linux-armhf).
Goldlöckchen
Ich konnte keine aussagekräftige Rückverfolgung erhalten (siehe bearbeitete Frage). Ich werde versuchen, ein kleines Beispiel zu erstellen. Ich bin auch verwirrt, dass ich ohne GDB keinen illegalen Opcode bekomme.
Irgendwann am
1
Stapel scheint zerschlagen, Valgrind könnte helfen?
Promonet

Antworten:

4

Dies sieht genauso aus wie dieses Problem: https://github.com/raspberrypi/linux/issues/766

Vor vier Tagen behoben.

Doug Edey
quelle
Hört sich gut an. Wird später testen. Danke für die Information.
Irgendwann
@someonr hast du überprüft?
Tshepang
sudo apt-get update; sudo apt-get upgrade; sudo rpi-updateDas Problem wurde für mich behoben, sodass ich continueundhandle SIGILL nostop
morloch