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?


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:


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.