Bagaimana cara debug tanpa "Program SIGILL signal signal" menggunakan kernel 3,18 (3,12 berfungsi)?

10

Saya mencoba men-debug program dengan gdb di Raspbian, tetapi yang saya dapatkan adalah:

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

Tidak membantu mengatur SIGILLpegangan ke nostop( handle SIGILL nostop):

Program received signal SIGILL, Illegal instruction.

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

Semua backtrace yang saya dapatkan adalah:

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

Jika saya memulai program di luar gdb, saya mendapatkan pengecualian C ++ normal (yang ingin saya debug).

Semua perangkat lunak diperbarui ke versi terbaru dari repositori raspbian. Selanjutnya saya mencoba raspberry pi foundation kernel "3.18.9+" dan juga raspbain kernel "3.18.0-trunk-rpi" (Saya perlu beberapa modul kernel khusus). Saya dapat men-debug program yang sama pada mesin utama saya tanpa masalah.

Pembaruan: Debugging berfungsi seperti yang diharapkan dengan kernel "3.12-1-rpi".

Apa yang menyebabkan kesalahan ini?

seseorang
sumber
Apakah kamu sudah mencoba handle SIGILL pass nostop?
mpromonet
@mpromonet Karena passsecara default diatur, seharusnya tidak membuat perbedaan, dan itu tidak membuat apa pun. Hasil yang sama denganhandle SIGILL nostop
someonr
Dan tidak ada jejak balik yang berarti ( bt)? Saya pikir Anda perlu berpikir untuk memberikan lebih banyak konteks di sini jika Anda secara serius mengharapkan seseorang untuk menjelaskan "Apa yang menyebabkan kesalahan ini?" hanya berdasarkan instruksi ilegal di tautan / pemuat ( ld-linux-armhf).
goldilocks
Saya tidak bisa mendapatkan jejak balik yang berarti (lihat pertanyaan yang diedit). Saya akan mencoba membuat contoh kecil. Juga, saya bingung bahwa saya tidak mendapatkan opcode ilegal tanpa gdb.
someonr
1
tumpukan tampaknya hancur, valgrind bisa membantu?
mpromonet

Jawaban:

4

Ini terlihat persis sama dengan masalah ini: https://github.com/raspberrypi/linux/issues/766

Diperbaiki empat hari yang lalu.

Doug Edey
sumber
Kedengarannya menjanjikan. Akan diuji nanti. Terima kasih untuk informasinya.
someonr
@ apakah Anda sudah memeriksa?
tshepang
sudo apt-get update; sudo apt-get upgrade; sudo rpi-updatememperbaiki masalah ini untuk saya, memungkinkan saya untuk menggunakan continuedanhandle SIGILL nostop
morloch