Tôi đã cố gắng gỡ lỗi một chương trình với gdb bằng Raspbian, nhưng tất cả những gì tôi nhận được là:
Program received signal SIGILL, Illegal instruction.
0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3
Nó không giúp đặt SIGILL
tay cầm thành nostop
( handle SIGILL nostop
):
Program received signal SIGILL, Illegal instruction.
Program terminated with signal SIGILL, Illegal instruction.
The program no longer exists.
Tất cả các backtrace tôi nhận được là:
#0 0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3
#1 0x00000000 in ?? ()
Nếu tôi khởi động chương trình bên ngoài gdb, tôi sẽ nhận được một ngoại lệ C ++ bình thường (mà tôi muốn gỡ lỗi).
Tất cả các phần mềm đã được cập nhật lên phiên bản mới nhất từ kho lưu trữ của Raspbian. Hơn nữa tôi đã thử hạt nhân nền tảng raspberry pi "3.18.9+" và cả hạt nhân raspbain "3.18.0-trunk-rpi" (Tôi cần một số mô-đun hạt nhân tùy chỉnh). Tôi có thể gỡ lỗi chương trình tương tự trên máy chính của mình mà không gặp vấn đề gì.
Cập nhật: Gỡ lỗi hoạt động như mong đợi với kernel "3.12-1-rpi".
Điều gì gây ra lỗi này?
pass
theo mặc định, nó không tạo ra sự khác biệt và nó không tạo ra bất kỳ. Kết quả tương tự như vớihandle SIGILL nostop
bt
)? Tôi nghĩ bạn cần suy nghĩ về việc cung cấp thêm ngữ cảnh ở đây nếu bạn nghiêm túc mong đợi ai đó giải thích "Điều gì gây ra lỗi này?" chỉ dựa trên một hướng dẫn bất hợp pháp trong trình liên kết / trình tải ( ld-linux-armhf
).
handle SIGILL pass nostop
chưa?