Có thể nào đó có thể bắt được các lỗi liên kết dữ liệu ngay cả trên i386 không? Có lẽ bằng cách thiết lập một máy tính đăng ký i386 cụ thể hoặc một cái gì đó như thế.x86: cách nắm bắt các lỗi liên kết dữ liệu (còn gọi là SIGBUS trên sparc)
Trên Solaris-Sparc Tôi nhận được SIGBUS trong trường hợp này, nhưng trên i386 mọi thứ đều ổn.
Môi trường:
- 32-bit ứng dụng
- Ubuntu Karmic
- gcc/g ++ v4.4.1
EDIT: Dưới đây là lý do tại sao tôi yêu cầu này:
- ứng dụng của chúng tôi gặp sự cố trên Sol-Sparc với SIGBUS. Đối với mục đích gỡ lỗi, tôi sẽ cố gắng để có được một hành vi tương tự trên nền tảng i386 của chúng tôi.
- Máy Sol-sparc của chúng tôi rất chậm, do đó việc biên dịch và gỡ lỗi mất rất nhiều thời gian ở đó. Và máy i386 của chúng tôi là không thể tin được nhanh (8 lõi, bộ nhớ 32G).
- Ngay cả trên nền tảng i386 có chi phí hoạt động trên các lỗi liên kết dữ liệu. Và do đó tôi muốn sửa các lỗi liên kết dữ liệu bất cứ khi nào có thể.
Có vẻ như chạy thử nghiệm của bạn trong 'qemu' (có thể nhắm mục tiêu SPARC) có thể nhanh hơn chạy trên phần cứng thực tế? – ephemient
Tôi chưa bao giờ thử qemu, nhưng điều đó nghe có vẻ thú vị. Điều đó làm việc mà không có một số loại "System-ROM" hoặc một cái gì đó tương tự? –
Dự án QEMU bao gồm 'openbios-sparc', đủ để cho' qemu-system-sparc' giống như một cỗ máy thực sự. Ngoài ra còn có 'qemu-sparc' chỉ chạy một tập tin thực thi Linux duy nhất trong mô phỏng, dịch các syscalls thành kernel nguyên gốc. – ephemient