Penelusuran kesalahan di Arm64

Artikel ini menjelaskan Windows 10 penelusuran kesalahan pada prosesor ARM. Untuk informasi umum tentang Windows 10 di Arm, lihat Windows 10 desktop di Arm64.

Secara umum, pengembang men-debug aplikasi mode pengguna harus menggunakan versi debugger yang cocok dengan arsitektur aplikasi target. Gunakan WinDbg versi Arm64 untuk men-debug aplikasi Arm64 mode pengguna dan gunakan versi Arm WinDbg untuk men-debug aplikasi ARM32 mode pengguna. Gunakan WinDbg versi x86 untuk men-debug aplikasi x86 mode pengguna yang berjalan pada prosesor Arm64.

Dalam kasus yang jarang terjadi di mana Anda perlu men-debug kode sistem - seperti WOW64 atau CHPE - Anda dapat menggunakan WinDbg versi Arm64. Jika Anda men-debug kernel Arm64 dari komputer lain, gunakan versi WinDbg yang cocok dengan arsitektur komputer lain tersebut.

Mendapatkan Alat Penelusuran Kesalahan Arm untuk Windows

Anda bisa mendapatkan alat penelusuran kesalahan untuk Arm64 dengan mengunduh Windows SDK (versi 10.0.16299 atau yang lebih baru). Selama penginstalan, pilih kotak Alat Penelusuran Kesalahan untuk Windows .

Alat penelusuran kesalahan terletak di Debuggers folder di direktori penginstalan kit. Alat x86 berada di bawah Debuggers\x86, alat ARM32 berada di bawah Debuggers\Arm, dan alat Arm64 berada di bawah Debuggers\Arm64.

Debugging Kode Arm64

Arm64 WinDbg diperlukan untuk men-debug kode Arm64. Pengalaman penelusuran kesalahan mirip dengan penelusuran kesalahan aplikasi x86 dengan WinDbg x86 pada Windows x86, kecuali untuk perbedaan berikut.

  • Ada 32 register tujuan umum - x0 hingga x28 dan fp, lr, sp.
  • Register penghitung program, pc, bukan register tujuan umum.
  • Semua register tujuan umum dan register pc adalah lebar 64-bit.
  • Paling banyak dua titik henti data aktif untuk eksekusi dan dua titik henti data aktif untuk memori baca/tulis. Untuk informasi selengkapnya, lihat Titik Henti Prosesor.

Debugging Kode Mode Pengguna x86

Dalam kasus yang jarang terjadi, Anda perlu menggunakan Arm64 WinDbg untuk men-debug kode mode pengguna x86 Anda, Anda dapat menggunakan perintah WinDbg berikut untuk beralih antar konteks:

  • .effmach x86: Beralih ke dan lihat konteks x86, mensimulasikan efek penggunaan x86 WinDbg.
  • .effmach arm64: Beralih ke dan lihat konteks Arm64
  • .effmach chpe: Beralih ke dan lihat konteks CHPE.

Untuk informasi selengkapnya tentang .effmach, lihat .effmach (Mesin Efektif).

Saat men-debug aplikasi x86 dalam mode pengguna, terlepas dari versi WinDbg mana yang Anda gunakan, ketahui pertimbangan ini.

  • Jika utas tidak di-debug secara aktif (misalnya, satu langkah, mengalami titik henti), tidak melaporkan pengecualian, dan bukan dalam panggilan sistem, konteks register mungkin tidak diperbarui.
  • Emulator secara internal menghasilkan instruksi Data yang tidak sejajar, Ilegal, pengecualian kesalahan I/O Dalam Halaman, dan menangani yang dihasilkannya. Saat Anda menggunakan WinDbg, pertimbangkan untuk mengonfigurasi pengecualian ini sebagai Diabaikan di bawah Filter Debug / Peristiwa... item menu.
  • Jika menggunakan Arm64 WinDbg dalam mode pengguna, melangkah tunggal di batas fungsi x86 & CHPE tidak didukung. Untuk mengatasi hal ini, atur titik henti pada kode target.

Untuk informasi umum tentang ARM64 dan WOW64, lihat Menjalankan Aplikasi 32-bit dalam panduan pemrograman Windows 64-bit.

Untuk informasi tentang men-debug aplikasi yang berjalan di WOW64, lihat Men-debug WOW64.

Penelusuran kesalahan di Visual Studio

Untuk informasi tentang penelusuran kesalahan Arm di Visual Studio, lihat Penelusuran Kesalahan Jarak Jauh.

Lihat juga