GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menjebak akses memori yang tidak selaras?

ARM Linux menyimpan daftar penangan penyelarasan pengecualian,

$ cat /proc/cpu/alignment 
User:           0
System:         0
Skipped:        0
Half:           0
Word:           0
DWord:          0
Multi:          0
User faults:    0 (ignored)

Ini hanya aktif dengan procfs , tetapi sulit membayangkan sistem tanpa procfs . Kode khusus yang menangani ini adalah penyelarasan.c. Anda dapat menggunakan echo 3 > /proc/cpu/alignment untuk memiliki perbaikan Linux instruksi dan berikan beberapa dmesg keluaran. Secara umum, menangani akses yang tidak selaras melalui emulasi sangat tidak efisien. Lebih baik untuk memperbaiki kode. sinyal opsi dengan debugger terlampir harus memberikan petunjuk tentang sumber pengecualian.

Baca manualnya.;-)


Linux dapat melakukan perbaikan untuk Anda atau memperingatkan tentang akses tersebut.

Anda dapat mengaktifkan perilaku di /proc/cpu/alignment, lihat http://www.mjmwired.net/kernel/Documentation/arm/mem_alignment untuk penjelasan tentang nilai yang berbeda.

0 - Do nothing (default behavior)
1 - Warning in kernel-log with PC and Memory-Address printed.
2 - Fixup error
3 - Warn and Fixup
4 - Send a SIGBUS to the process
5 - Send SIGBUS and output Warning

Linux
  1. Cara Mengaudit Akses File di Linux

  2. Bagaimana cara mengakses alamat fisik dari ruang pengguna di Linux?

  3. Bagaimana saya bisa mengamati bandwidth memori?

  1. Cara mengakses email web di Plesk

  2. Cara Menghapus Cache Memori di Linux

  3. Bagaimana cara membatasi penggunaan memori aplikasi?

  1. Cara Mengakses phpMyAdmin

  2. Cara Mengakses cPanel

  3. Bagaimana cara mengakses (jika mungkin) ruang kernel dari ruang pengguna?