Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kode berhenti berikut terkandung dalam kumpulan dasar pengujian.
Detail Stop Pengecualian
Coba jalankan kode dalam memori yang tidak dapat dieksekusi (kesempatan pertama).
kemungkinan penyebabPemberhentian ini dihasilkan jika aplikasi mencoba menjalankan kode dari alamat yang tidak dapat dieksekusi atau gratis. Untuk men-debug perhentian ini:
- u <parameter2> - tidak merakit kode pelakunya
- Parameter .exr3>< - tampilkan informasi pengecualian
- .cxr <parameter4> - menampilkan informasi konteks pengecualian
- kb - tampilkan jejak tumpukan untuk waktu ketika pengecualian dinaikkan.
- Parameter 1 - Alamat sedang diakses.
- Parameter 2 - Kode melakukan akses yang tidak valid.
- Parameter 3 - Catatan pengecualian. Gunakan .exr untuk menampilkannya.
- Parameter 4 - Rekaman konteks. Gunakan .cxr untuk menampilkannya.
- Lapisan Pengujian: Pengecualian
- HENTIKAN ID: FIRST_CHANCE_ACCESS_VIOLATION_CODE
- Hentikan kode: 650
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Menangani Detail Penghentian
Pengecualian handel tidak valid untuk pelacakan tumpukan saat ini.
kemungkinan penyebabPenghentian ini dihasilkan jika fungsi di bagian atas tumpukan meneruskan handel yang tidak valid ke rutinitas sistem. Biasanya perintah 'kb' sederhana akan mengungkapkan apa nilai handel yang diteruskan (harus menjadi salah satu parameter - biasanya yang pertama). Jika nilainya null maka ini jelas salah. Jika nilainya terlihat baik-baik saja, Anda perlu menggunakan ekstensi debugger '!htrace' untuk mendapatkan riwayat operasi yang berkaitan dengan nilai handel ini. Dalam kebanyakan kasus, nilai handel digunakan setelah ditutup.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Tidak digunakan.
- Parameter 2 - Tidak digunakan.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Menangani
- HENTIKAN ID: INVALID_HANDLE
- Hentikan kode: 300
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Indeks TLS tidak valid yang digunakan untuk pelacakan tumpukan saat ini.
kemungkinan penyebabPenghentian ini dihasilkan jika fungsi di bagian atas tumpukan meneruskan indeks TLS yang tidak valid ke rutinitas sistem TLS. Biasanya perintah 'kb' sederhana akan mengungkapkan apa yang salah. Bug umum di sini adalah mengasumsikan nilai tertentu untuk indeks TLS alih-alih memanggil 'TlsAlloc'. Ini dapat terjadi dengan asumsi bahwa Anda selalu mendapatkan nilai N dan oleh karena itu tidak perlu memanggil 'TlsAlloc'. Lebih sering karena variabel yang tidak diinisialisasi.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Indeks TLS tidak valid.
- Parameter 2 - Diharapkan bagian bawah dari indeks.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Menangani
- HENTIKAN ID: INVALID_TLS_VALUE
- Hentikan kode: 301
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Parameter tidak valid untuk panggilan WaitForMultipleObjects.
kemungkinan penyebabPenghentian ini dihasilkan jika fungsi di bagian atas tumpukan yang disebut 'WaitForMultipleObjects' dengan NULL sebagai alamat array handel untuk menunggu atau dengan nol sebagai jumlah handel. Perintah 'kb' sederhana akan mengungkapkan fungsi yang salah memanggil API ini.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat objek menangani vektor.
- Parameter 2 - Jumlah handel.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Menangani
- HENTIKAN ID: INCORRECT_WAIT_CALL
- Hentikan kode: 302
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Handel NULL diteruskan sebagai parameter. Handel yang valid harus digunakan.
kemungkinan penyebabPenghentian ini dihasilkan jika fungsi di bagian atas tumpukan meneruskan handel NULL ke rutinitas sistem. Biasanya perintah 'kb' sederhana akan mengungkapkan apa nilai handel yang diteruskan (harus menjadi salah satu parameter, biasanya yang pertama).
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Menggunakan handel NULL
- Parameter 2 - Tidak digunakan
- Parameter 3 - Tidak digunakan
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: Menangani
- HENTIKAN ID: NULL_HANDLE
- Hentikan kode: 303
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Menunggu handel utas di DllMain.
kemungkinan penyebabPenghentian ini dihasilkan jika utas saat ini sedang menjalankan kode di dalam fungsi 'DllMain' dari salah satu DLL yang dimuat dalam proses saat ini dan memanggil 'WaitForSingleObject' atau 'WaitForMultipleObjects' untuk menunggu handel utas dalam proses yang sama. Ini kemungkinan besar menyebabkan kebuntuan karena handel utas tidak akan diberi sinyal kecuali utas kedua keluar. Ketika utas kedua memanggil 'ExitThread', ia mencoba memperoleh kunci pemuat DLL dan kemudian memanggil 'DllMain' (DLL_THREAD_DETACH) untuk semua DLL dalam proses saat ini. Karena kunci loader dimiliki oleh utas pertama (yang menunggu di handel utas), kedua utas akan mengalami kebuntuan.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Pegangan utas.
- Parameter 2 - Tidak digunakan.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Menangani
- HENTIKAN ID: WAIT_IN_DLLMAIN
- Hentikan kode: 304
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Jenis objek yang salah untuk handel.
kemungkinan penyebabPemberhentian ini dihasilkan jika utas saat ini memanggil API dengan handel ke objek dengan jenis objek yang salah. Misalnya, memanggil 'SetEvent' dengan handel semaphore karena parameter menghasilkan penghentian ini. Untuk men-debug perhentian ini:
- kb - untuk menampilkan jejak tumpukan saat ini. Pelakunya mungkin adalah DLL yang memanggil verifier.dll
- du <parameter2> - untuk menampilkan jenis handel yang sebenarnya. Nilai handle adalah parameter1. Dalam contoh sebelumnya, ini menampilkan "Semaphore".
- du <parameter3> - untuk menampilkan jenis objek yang diharapkan oleh API. Dalam contoh sebelumnya, nama ini adalah "Peristiwa".
- !htrace <parameter1> - mungkin berguna karena menampilkan jejak tumpukan untuk operasi buka/tutup baru-baru ini pada handel ini.
- Parameter 1 - Menangani nilai.
- Parameter 2 - Nama jenis objek. Gunakan du untuk menampilkannya
- Parameter 3 - Nama jenis objek yang diharapkan. Gunakan du untuk menampilkannya
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Menangani
- HENTIKAN ID: INCORRECT_OBJECT_TYPE
- Hentikan kode: 305
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Detail Heaps Stop
Kesalahan tidak diketahui.
kemungkinan penyebabPesan ini dapat terjadi jika kesalahan yang ditemui tidak dapat diklasifikasikan dengan cara lain. Tidak digunakan sekarang.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Tidak digunakan
- Parameter 2 - Tidak digunakan
- Parameter 3 - Tidak digunakan
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: UNKNOWN_ERROR
- Hentikan kode: 0x1
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Pengecualian pelanggaran akses.
kemungkinan penyebabIni adalah penghentian pemverifikasi aplikasi yang paling umum. Biasanya disebabkan oleh kesalahan overrun buffer. Pemverifikasi timbunan menempatkan halaman yang tidak dapat diakses di akhir alokasi timbunan dan overrun buffer akan menyebabkan pengecualian dengan menyentuh halaman ini. Untuk men-debug penghentian ini, identifikasi alamat akses yang menyebabkan pengecualian lalu gunakan perintah debugger berikut:
- !heap -p -a ACCESS_ADDRESS - Perintah ini memberikan detail tentang sifat kesalahan dan blok tumpukan mana yang diserbu. Ini juga memberikan jejak tumpukan untuk alokasi blok. Ada penyebab lain untuk pemberhentian ini, misalnya mengakses blok tumpukan setelah dibebaskan. Perintah debugger yang sama berguna untuk kasus ini.
- Parameter 1 - Alamat tidak valid menyebabkan pengecualian
- Parameter 2 - Alamat kode yang mengeksekusi akses yang tidak valid
- Parameter 3 - Rekaman pengecualian
- Parameter 4 - Rekaman konteks
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: ACCESS_VIOLATION
- Hentikan kode: 0x2
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Akses multithread dalam timbunan yang dibuat dengan bendera HEAP_NO_SERIALIZE.
kemungkinan penyebabTumpukan yang dibuat dengan bendera HEAP_NO_SERIALIZE tidak seharusnya diakses secara bersamaan dari dua utas. Jika situasi seperti itu terdeteksi, Anda akan mendapatkan pesan ini. Cara umum situasi ini merayap ke dalam program adalah dengan menautkan dengan versi runtime C satu utas. Visual C++, misalnya, dapat menautkan pustaka seperti itu secara statis saat bendera yang tepat digunakan. Pengembang kemudian melupakan detail ini dan menggunakan beberapa utas. Bug ini sangat sulit untuk debug dalam kehidupan nyata karena akan muncul sebagai kerusakan data misterius.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Timbunan di mana operasi terjadi.
- Parameter 2 - ID utas untuk pemilik bagian penting timbunan saat ini.
- Parameter 3 - ID utas utas saat ini mencoba memasukkan tumpukan.
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: UNSYNCHRONIZED_ACCESS
- Hentikan kode: 0x3
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Permintaan ukuran ekstrem.
kemungkinan penyebabPesan ini akan dihasilkan jika, dalam operasi 'HeapAlloc' atau 'HeapReAlloc', ukuran blok berada di atas nilai yang wajar. Biasanya nilai ini 0x80000000 pada platform 32-bit dan secara signifikan lebih besar pada platform 64-bit.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Timbunan di mana operasi terjadi.
- Parameter 2 - Ukuran diminta
- Parameter 3 - Tidak digunakan
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: EXTREME_SIZE_REQUEST
- Hentikan kode: 0x4
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Handel timbunan dengan tanda tangan yang salah.
kemungkinan penyebabStruktur tumpukan ditandai dengan nilai ajaib. Jika handel timbunan yang digunakan dalam panggilan ke antarmuka timbunan tidak memiliki pola ini, maka pemberhentian ini akan dihasilkan. Bug ini dapat terjadi jika entah bagaimana struktur timbunan internal rusak (korupsi acak) atau hanya nilai palsu digunakan sebagai handel timbunan. Untuk mendapatkan daftar nilai handel timbunan yang valid, gunakan perintah debugger berikut:
- !heap -p
Perhatikan bahwa jika Anda hanya mengalihkan handel timbunan yang valid dengan handel lain yang valid dalam operasi timbunan, Anda tidak akan mendapatkan penghentian ini (handel terlihat valid setelah semua). Namun, pemverifikasi timbunan mendeteksi situasi ini dan melaporkannya dengan SWITCHED_HEAP_HANDLE berhenti.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Heap handle digunakan dalam panggilan ke antarmuka heap
- Parameter 2 - Tidak digunakan
- Parameter 3 - Tidak digunakan
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: BAD_HEAP_HANDLE
- Hentikan kode: 0x5
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Penunjuk tumpukan rusak atau menggunakan tumpukan yang salah.
kemungkinan penyebabBiasanya ini terjadi jika blok dialokasikan dalam satu timbunan dan dibeberkan di tumpukan lain. Gunakan perintah debugger '!heap -p' untuk mendapatkan daftar semua nilai handel timbunan yang valid. Contoh yang paling umum adalah alokasi msvcrt menggunakan 'malloc' yang dipasangkan dengan dealokasi kernel32 menggunakan 'HeapFree'.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Heap handel digunakan dalam panggilan.
- Parameter 2 - Blok timbunan terlibat dalam operasi.
- Parameter 3 - Ukuran blok tumpuk.
- Parameter 4 - Heap di mana blok awalnya dialokasikan.
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: SWITCHED_HEAP_HANDLE
- Hentikan kode: 0x6
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Blok tumpukan sudah dibeberkan.
kemungkinan penyebabSituasi ini terjadi jika blok dibeberkan dua kali. Blok yang dibebaskan ditandai dengan cara khusus dan disimpan di sekitar untuk sementara waktu dalam antrean gratis yang tertunda. Jika program buggy mencoba membebaskan blok lagi, ini akan tertangkap - dengan asumsi blok tidak diantrekan dari antrean bebas tertunda dan memorinya digunakan kembali untuk alokasi lain. Kedalaman antrean bebas penundaan adalah dalam urutan ribuan blok, oleh karena itu ada kemungkinan besar bebas ganda akan tertangkap.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Tumpuk handel untuk timbunan yang memiliki blok.
- Parameter 2 - Blok timbunan dibesarkan lagi.
- Parameter 3 - Ukuran blok tumpuk.
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: DOUBLE_FREE
- Hentikan kode: 0x7
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Blok tumpuk rusak.
kemungkinan penyebabIni adalah kesalahan umum yang dikeluarkan jika kerusakan di blok tumpukan tidak dapat ditempatkan dalam kategori yang lebih spesifik.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Heap handel digunakan dalam panggilan.
- Parameter 2 - Blok timbunan terlibat dalam operasi.
- Parameter 3 - Ukuran blok tumpuk.
- Parameter 4 - Dicadangkan
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: CORRUPTED_HEAP_BLOCK
- Hentikan kode: 0x8
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Mencoba menghancurkan timbunan proses.
kemungkinan penyebabIni adalah kesalahan untuk mencoba menghancurkan timbunan proses default (yang dikembalikan oleh antarmuka 'GetProcessHeap()').
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Heap handle digunakan dengan HeapDestroy.
- Parameter 2 - Tidak digunakan
- Parameter 3 - Tidak digunakan
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: DESTROY_PROCESS_HEAP
- Hentikan kode: 0x9
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Pengecualian tak terduga dimunculkan dalam kode timbunan.
kemungkinan penyebabPemberhentian ini dihasilkan jika, saat menjalankan kode manajer timbunan, pelanggaran akses dimunculkan dalam situasi tidak sah. Ada beberapa situasi di mana ini ok, misalnya saat memanggil 'HeapValidate()' atau 'HeapSize()'. Informasi rekaman pengecualian (parameter ketiga) dapat digunakan untuk menemukan konteks pengecualian yang tepat. Gunakan perintah debugger berikut untuk ini:
- parameter dd2 L2
- .exr first_dword
- .cxr second_dword
Biasanya pemberhentian ini terjadi jika ada beberapa kerusakan acak dalam struktur tumpukan internal.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Timbunan terlibat dalam operasi.
- Parameter 2 - Catatan pengecualian.
- Parameter 3 - Rekaman konteks.
- Parameter 4 - Kode pengecualian (C0000005 - pelanggaran akses)
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: UNEXPECTED_EXCEPTION
- Hentikan kode: 0xA
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Pengecualian muncul saat memverifikasi header blok tumpukan.
kemungkinan penyebabSituasi ini terjadi jika kita benar-benar tidak dapat menentukan jenis kerusakan tertentu untuk blok tersebut. Misalnya terjadi ketika alamat blok tumpukan diteruskan ke titik operasi bebas timbunan ke area memori yang tidak dapat diakses (pointer rusak, pointer yang tidak diinisialisasi, dll.).
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Tumpuk handel untuk timbunan yang memiliki blok.
- Parameter 2 - Heap blok yang rusak.
- Parameter 3 - Ukuran blok atau nol jika ukuran tidak dapat ditentukan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: CORRUPTED_HEAP_BLOCK_EXCEPTION_RAISED_FOR_HEADER
- Hentikan kode: 0xB
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Pengecualian dimunculkan saat memverifikasi blok tumpukan.
kemungkinan penyebabSituasi ini terjadi jika kita benar-benar tidak dapat menentukan jenis kerusakan tertentu untuk blok tersebut. Misalnya, Anda akan mendapatkan ini jika selama operasi bebas tumpukan, Anda meneruskan alamat yang menunjuk ke area memori yang tidak dapat diakses. Ini juga dapat terjadi untuk situasi bebas ganda jika kita tidak menemukan blok di antara blok tumpukan halaman penuh dan kami menyelidikannya sebagai blok tumpukan halaman cahaya.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Heap handel digunakan dalam panggilan.
- Parameter 2 - Blok timbunan terlibat dalam operasi.
- Parameter 3 - Ukuran blok tumpuk.
- Parameter 4 - Sudah dipesan.
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: CORRUPTED_HEAP_BLOCK_EXCEPTION_RAISED_FOR_PROBING
- Hentikan kode: 0xC
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Blok timbunan rusak setelah dibeberkan.
kemungkinan penyebabSituasi ini terjadi jika blok memori ditulis setelah dibeberkan.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Tumpuk handel untuk timbunan yang memiliki blok.
- Parameter 2 - Heap blok yang rusak.
- Parameter 3 - Ukuran blok atau nol jika ukuran tidak dapat ditentukan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: CORRUPTED_HEAP_BLOCK_HEADER
- Hentikan kode: 0xD
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Pola infiks yang rusak untuk blok tumpukan yang dibeberkan.
kemungkinan penyebabBlok yang dibebaskan terkadang ditandai tidak dapat diakses dan program yang menyentuhnya akan mengakses pelanggaran (pemberhentian pemverifikasi yang berbeda). Dalam kasus lain (misalnya timbunan halaman ringan) blok ditandai dengan pola ajaib dan akan disimpan untuk sementara waktu. Akhirnya dengan cara FIFO blok benar-benar dibeberkan. Saat ini pola infiks diperiksa dan jika telah dimodifikasi, Anda akan mendapatkan jeda ini. Tumpukan pada saat istirahat tidak relevan. Anda perlu mencari tahu sifat blokir dan kode meninjau kode yang mungkin salah.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Tumpuk handel untuk timbunan yang memiliki blok.
- Parameter 2 - Blok timbunan dibebersarkan.
- Parameter 3 - Ukuran blok tumpuk.
- Parameter 4 - Sudah dipesan.
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: CORRUPTED_FREED_HEAP_BLOCK
- Hentikan kode: 0xE
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Pola akhiran yang rusak untuk blok timbunan.
kemungkinan penyebabSebagian besar biasanya ini terjadi untuk kesalahan buffer overrun. Terkadang pemverifikasi aplikasi menempatkan halaman yang tidak dapat diakses di akhir alokasi dan overruns buffer akan menyebabkan pelanggaran akses dan kadang-kadang blok tumpukan diikuti oleh pola ajaib. Jika pola ini diubah ketika blok dibesarkan, Anda akan mendapatkan jeda ini. Jeda ini bisa sangat sulit untuk di-debug karena Anda tidak memiliki momen aktual ketika korupsi terjadi. Anda hanya memiliki akses ke momen bebas (yaitu, "berhenti terjadi di sini") dan jejak tumpukan alokasi ('!heap -p -a HEAP_ADDRESS')
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Heap handel digunakan dalam panggilan.
- Parameter 2 - Blok timbunan terlibat dalam operasi.
- Parameter 3 - Ukuran blok tumpuk.
- Parameter 4 - Sudah dipesan.
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: CORRUPTED_HEAP_BLOCK_SUFFIX
- Hentikan kode: 0xF
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Stempel mulai rusak untuk blok timbunan.
kemungkinan penyebabIni terjadi untuk buffer underruns.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Heap handel digunakan dalam panggilan.
- Parameter 2 - Blok timbunan terlibat dalam operasi.
- Parameter 3 - Ukuran blok tumpuk.
- Parameter 4 - Nilai stempel rusak.
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: CORRUPTED_HEAP_BLOCK_START_STAMP
- Hentikan kode: 0x10
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Stempel akhir yang rusak untuk blok timbunan.
kemungkinan penyebabIni terjadi untuk buffer underruns.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Heap handel digunakan dalam panggilan.
- Parameter 2 - Blok timbunan terlibat dalam operasi.
- Parameter 3 - Ukuran blok tumpuk.
- Parameter 4 - Nilai stempel rusak.
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: CORRUPTED_HEAP_BLOCK_END_STAMP
- Hentikan kode: 0x11
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Pola awalan yang rusak untuk blok timbunan.
kemungkinan penyebabIni terjadi untuk buffer underruns.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Heap handel digunakan dalam panggilan.
- Parameter 2 - Blok timbunan terlibat dalam operasi.
- Parameter 3 - Ukuran blok tumpuk.
- Parameter 4 - Sudah dipesan.
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: CORRUPTED_HEAP_BLOCK_PREFIX
- Hentikan kode: 0x12
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Pelanggaran akses kesempatan pertama untuk pelacakan tumpukan saat ini.
kemungkinan penyebabIni adalah penghentian pemverifikasi aplikasi yang paling umum. Biasanya disebabkan oleh kesalahan overrun buffer. Pemverifikasi timbunan menempatkan halaman yang tidak dapat diakses di akhir alokasi timbunan dan overrun buffer akan menyebabkan pengecualian dengan menyentuh halaman ini. Untuk men-debug penghentian ini, identifikasi alamat akses yang menyebabkan pengecualian lalu gunakan perintah debugger berikut:
- !heap -p -a ACCESS_ADDRESS
Perintah ini akan memberikan detail tentang sifat kesalahan dan blok tumpukan apa yang diserbu. Ini juga akan memberikan jejak tumpukan untuk alokasi blok. Ada beberapa penyebab lain untuk pemberhentian ini, misalnya mengakses blok tumpukan setelah dibebaskan. Perintah debugger yang sama akan berguna untuk kasus ini.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat tidak valid menyebabkan pengecualian.
- Parameter 2 - Alamat kode yang menjalankan akses yang tidak valid.
- Parameter 3 - Catatan pengecualian.
- Parameter 4 - Rekaman konteks.
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: FIRST_CHANCE_ACCESS_VIOLATION
- Hentikan kode: 0x13
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Jumlah daftar timbunan proses tidak valid.
kemungkinan penyebabPesan ini dapat terjadi jika, saat memanggil GetProcessHeaps, manajer timbunan halaman mendeteksi beberapa inkonsistensi internal. Ini dapat disebabkan oleh beberapa kerusakan acak di ruang proses.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Jumlah timbunan aktual.
- Parameter 2 - Jumlah tumpuk halaman.
- Parameter 3 - Tidak digunakan
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: Tumpukan
- HENTIKAN ID: CORRUPTED_HEAP_LIST
- Hentikan kode: 0x14
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Detail Hentikan Kebocoran
Alokasi timbunan bocor.
kemungkinan penyebabPemberhentian ini dihasilkan jika dll pemilik alokasi dibongkar secara dinamis saat memiliki sumber daya.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat alokasi bocor. Jalankan !heap -p -a <alamat> untuk mendapatkan informasi tambahan tentang alokasi.
- Parameter 2 - Alamat ke pelacakan tumpukan alokasi. Jalankan alamat< dps >untuk melihat tumpukan alokasi.
- Parameter 3 - Alamat nama dll pemilik. Jalankan du <alamat> untuk membaca nama dll.
- Parameter 4 - Basis dll pemilik. Jalankan .reload <dll_name> = <alamat> untuk memuat ulang dll pemilik. Gunakan 'lm' untuk mendapatkan informasi selengkapnya tentang modul yang dimuat dan dibongkar.
- Lapisan Pengujian: Kebocoran
- HENTIKAN ID: ALOKASI
- Hentikan kode: 0x900
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
HANDEL bocor.
kemungkinan penyebabPenghentian ini dihasilkan jika dll pemilik handel dibongkar secara dinamis saat memiliki sumber daya. Untuk men-debug perhentian ini: Jalankan !htrace parameter1 untuk mendapatkan informasi tambahan tentang handel.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Nilai handel yang bocor. Jalankan handel< !htrace >untuk mendapatkan informasi tambahan tentang handel jika pelacakan penanganan diaktifkan.
- Parameter 2 - Alamat ke pelacakan tumpukan alokasi. Jalankan alamat< dps >untuk melihat tumpukan alokasi.
- Parameter 3 - Alamat nama dll pemilik. Jalankan du <alamat> untuk membaca nama dll.
- Parameter 4 - Basis dll pemilik. Jalankan .reload <dll_name> = <alamat> untuk memuat ulang dll pemilik. Gunakan 'lm' untuk mendapatkan informasi selengkapnya tentang modul yang dimuat dan dibongkar.
- Lapisan Pengujian: Kebocoran
- HENTIKAN ID: MENANGANI
- Hentikan kode: 0x901
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
HKEY bocor.
kemungkinan penyebabPemberhentian ini dihasilkan jika dll pemilik kunci registri dibongkar secara dinamis saat memiliki sumber daya.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Nilai HKEY yang bocor.
- Parameter 2 - Alamat ke pelacakan tumpukan alokasi. Jalankan alamat< dps >untuk melihat tumpukan alokasi.
- Parameter 3 - Alamat nama dll pemilik. Jalankan du <alamat> untuk membaca nama dll.
- Parameter 4 - Basis dll pemilik. Jalankan .reload <dll_name> = <alamat> untuk memuat ulang dll pemilik. Gunakan 'lm' untuk mendapatkan informasi selengkapnya tentang modul yang dimuat dan dibongkar.
- Lapisan Pengujian: Kebocoran
- HENTIKAN ID: REGISTRI
- Hentikan kode: 0x902
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Reservasi virtual bocor.
kemungkinan penyebabPemberhentian ini dihasilkan jika dll pemilik reservasi virtual dibongkar secara dinamis saat memiliki sumber daya.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat reservasi bocor.
- Parameter 2 - Alamat ke pelacakan tumpukan alokasi. Jalankan alamat< dps >untuk melihat tumpukan alokasi.
- Parameter 3 - Alamat nama dll pemilik. Jalankan du <alamat> untuk membaca nama dll.
- Parameter 4 - Basis dll pemilik. Jalankan .reload <dll_name> = <alamat> untuk memuat ulang dll pemilik. Gunakan 'lm' untuk mendapatkan informasi selengkapnya tentang modul yang dimuat dan dibongkar.
- Lapisan Pengujian: Kebocoran
- HENTIKAN ID: VIRTUAL_RESERVATION
- Hentikan kode: 0x903
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
BSTR bocor.
kemungkinan penyebabPemberhentian ini dihasilkan jika dll pemilik SysString dibongkar secara dinamis saat memiliki sumber daya.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat BSTR yang bocor. Jalankan !heap -p -a <alamat> untuk mendapatkan informasi tambahan tentang alokasi.
- Parameter 2 - Alamat ke pelacakan tumpukan alokasi. Jalankan alamat< dps >untuk melihat tumpukan alokasi.
- Parameter 3 - Alamat nama dll pemilik. Jalankan du <alamat> untuk membaca nama dll.
- Parameter 4 - Basis dll pemilik. Jalankan .reload <dll_name> = <alamat> untuk memuat ulang dll pemilik. Gunakan 'lm' untuk mendapatkan informasi selengkapnya tentang modul yang dimuat dan dibongkar.
- Lapisan Pengujian: Kebocoran
- HENTIKAN ID: SYSSTRING
- Hentikan kode: 0x904
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Pemberitahuan daya tidak terdaftar.
kemungkinan penyebabPemberhentian ini dihasilkan jika dll yang terdaftar untuk pemberitahuan daya dan secara dinamis dibongkar tanpa membatalkan pendaftaran.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat pendaftaran pemberitahuan daya.
- Parameter 2 - Alamat untuk pelacakan tumpukan pendaftaran. Jalankan alamat< dps >untuk melihat tumpukan alokasi.
- Parameter 3 - Alamat nama dll pemilik. Jalankan du <alamat> untuk membaca nama dll.
- Parameter 4 - Basis dll pemilik. Jalankan .reload <dll_name> = <alamat> untuk memuat ulang dll pemilik. Gunakan 'lm' untuk mendapatkan informasi selengkapnya tentang modul yang dimuat dan dibongkar.
- Lapisan Pengujian: Kebocoran
- HENTIKAN ID: POWER_NOTIFICATION
- Hentikan kode: 0x905
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Detail Henti Kunci
Utas tidak dapat memiliki bagian penting.
kemungkinan penyebabPenghentian ini dihasilkan jika utas (ID utas adalah parameter1) dihentikan, ditangguhkan, atau dalam keadaan (alur pekerja menyelesaikan item kerja) di mana ia tidak dapat menahan bagian penting. Utas saat ini adalah pelakunya. Untuk men-debug perhentian ini, gunakan perintah debugger berikut:
- kb - untuk mendapatkan jejak tumpukan saat ini. Jika utas saat ini adalah pemilik bagian penting, itu mungkin memanggil ExitThread. Utas saat ini seharusnya telah merilis bagian penting sebelum keluar. Jika utas saat ini memanggil TerminateThread atau SuspendThread, maka tidak boleh melakukan ini untuk utas yang memegang bagian penting.
- !cs -s <parameter2> - buang informasi tentang bagian penting ini.
- ln <parameter2> - untuk menampilkan simbol di dekat alamat bagian penting. Ini akan membantu mengidentifikasi bagian kritis yang bocor.
- parameter dps4>< - untuk mencadangkan jejak tumpukan untuk inisialisasi bagian penting ini.
- Parameter 1 - ID Utas.
- Parameter 2 - Alamat bagian kritis.
- Parameter 3 - Bagian kritis men-debug alamat informasi.
- Parameter 4 - Pelacakan tumpukan inisialisasi bagian kritis.
- Lapisan Pengujian: Kunci
- HENTIKAN ID: EXIT_THREAD_OWNS_LOCK
- Hentikan kode: 0x200
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Membongkar DLL yang berisi bagian penting aktif.
kemungkinan penyebabPenghentian ini dihasilkan jika DLL memiliki variabel global yang berisi bagian penting dan DLL dibongkar tetapi bagian penting belum dihapus. Untuk men-debug perhentian ini, gunakan perintah debugger berikut:
- du <parameter3> - untuk mencadangkan nama DLL pelakunya.
- .reload dllname atau .reload dllname = <parameter4> - untuk memuat ulang simbol untuk DLL tersebut.
- !cs -s <parameter1> - buang informasi tentang bagian penting ini.
- ln <parameter1> - untuk menampilkan simbol di dekat alamat bagian penting. Ini akan membantu mengidentifikasi bagian kritis yang bocor.
- parameter dps2>< - untuk mencadangkan jejak tumpukan untuk inisialisasi bagian penting ini.
- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Pelacakan tumpukan inisialisasi bagian kritis.
- Parameter 3 - Alamat nama DLL.
- Parameter 4 - Alamat dasar DLL.
- Lapisan Pengujian: Kunci
- HENTIKAN ID: LOCK_IN_UNLOADED_DLL
- Hentikan kode: 0x201
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Membebaskan blok timbunan yang berisi bagian kritis aktif.
kemungkinan penyebabPemberhentian ini dihasilkan jika alokasi timbunan berisi bagian penting, alokasi dibebaskan dan bagian kritis belum dihapus. Untuk men-debug perhentian ini, gunakan perintah debugger berikut:
- !cs -s <(parameter1)> - informasi cadangan tentang bagian penting ini.
- ln <parameter1> - untuk menampilkan simbol di dekat alamat bagian penting. Ini akan membantu mengidentifikasi bagian kritis yang bocor.
- parameter dps2>< - untuk mencadangkan jejak tumpukan untuk inisialisasi bagian penting ini.
- < parameter3> dan <parameter4> mungkin membantu memahami di mana blok timbunan ini dialokasikan (ukuran alokasi mungkin signifikan).
- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Pelacakan tumpukan inisialisasi bagian kritis.
- Parameter 3 - Alamat blok timbunan.
- Parameter 4 - Ukuran blok timbunan.
- Lapisan Pengujian: Kunci
- HENTIKAN ID: LOCK_IN_FREED_HEAP
- Hentikan kode: 0x202
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Bagian kritis ganda yang diinisialisasi atau rusak.
kemungkinan penyebabBiasanya perhentian ini dihasilkan jika bagian penting telah diinisialisasi lebih dari satu kali. Dalam hal ini parameter3 dan parameter4 adalah alamat pelacakan tumpukan untuk dua inisialisasi ini. Beberapa waktu lain dimungkinkan untuk menghentikan ini jika bagian penting atau struktur informasi debugnya telah rusak. Dalam kasus kedua ini ada kemungkinan bahwa parameter3 dan parameter4 tidak valid dan tidak berguna. Untuk men-debug perhentian ini:
- !cs -s -d <parameter2> - buang informasi tentang bagian penting ini.
- ln <parameter1> - untuk menampilkan simbol di dekat alamat bagian penting. Ini mungkin membantu mengidentifikasi bagian penting jika ini adalah variabel global.
- parameter dps3>< dan parameter dps4>< - untuk mengidentifikasi dua jalur kode untuk menginisialisasi bagian penting ini.
- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Alamat struktur informasi debug yang ditemukan dalam daftar aktif.
- Parameter 3 - Pelacakan tumpukan inisialisasi pertama.
- Parameter 4 - Jejak tumpukan inisialisasi kedua.
- Lapisan Pengujian: Kunci
- HENTIKAN ID: LOCK_DOUBLE_INITIALIZE
- Hentikan kode: 0x203
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Memori gratis yang berisi bagian penting aktif.
kemungkinan penyebabPemberhentian ini dihasilkan jika memori yang berisi bagian penting dibebaskan tetapi bagian penting belum dihapus menggunakan DeleteCriticalSection. Untuk men-debug perhentian ini, gunakan perintah debugger berikut:</p.>
- !cs -s -d <parameter2> - buang informasi tentang bagian penting ini.
- parameter dps3>< - untuk mengidentifikasi jalur kode untuk menginisialisasi bagian penting ini.
Dalam kebanyakan kasus, pemverifikasi kunci mendeteksi bagian penting yang langsung bocor yang terkandung dalam alokasi tumpukan, rentang DLL, alokasi memori virtual, atau rentang memori yang dipetakan MapViewOfFile dan mengeluarkan perhentian yang berbeda dalam kasus ini. Jadi ada sangat sedikit kasus yang tersisa untuk penghentian pemverifikasi ini. Kunci harus dalam rentang memori yang dibebaskan oleh kode mode kernel atau proses silang yang dibebaskan oleh API seperti VirtualFreeEx. Biasanya perhentian ini akan ditemui jika pemberhentian sebelumnya (misalnya LOCK_IN_FREED_HEAP atau LOCK_IN_UNLOADED_DLL) dilanjutkan dengan menekan 'g' di konsol debugger.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Bagian kritis men-debug alamat informasi.
- Parameter 3 - Pelacakan tumpukan inisialisasi bagian kritis.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Kunci
- HENTIKAN ID: LOCK_IN_FREED_MEMORY
- Hentikan kode: 0x204
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Bagian kritis rusak.
kemungkinan penyebabPemberhentian ini dihasilkan jika bidang DebugInfo dari bagian penting menunjuk memori yang dibebaskan. Biasanya struktur DebugInfo lain yang valid ditemukan di daftar bagian penting aktif. Tanpa korupsi, dua pointer harus identik. Untuk men-debug perhentian ini, gunakan perintah debugger berikut:
- !cs -s -d <parameter3> - buang informasi tentang bagian penting ini berdasarkan konten struktur info debug saat ini yang ditemukan dalam daftar aktif (struktur ini jarang rusak sehingga biasanya informasi ini dapat dipercaya).
- !cs -s <parameter1> - buang informasi tentang bagian penting ini berdasarkan konten struktur bagian penting saat ini (struktur sudah rusak sehingga terkadang informasi ini TIDAK dapat dipercaya).
- parameter dps4>< - untuk mengidentifikasi jalur kode untuk menginisialisasi bagian penting ini.
Buang bagian penting di parameter alamat1>< dan cari pola kerusakan. Dengan simbol yang baik untuk ntdll.dl Anda dapat menggunakan perintah berikut:
- dt ntdll!_RTL_CRITICAL_SECTION LOCK_ADDRESS
- dt ntdll!_RTL_CRITICAL_SECTION_DEBUG DEBUG_ADDRESS
- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Alamat informasi debug tidak valid dari bagian penting ini.
- Parameter 3 - Alamat informasi debug yang ditemukan dalam daftar aktif.
- Parameter 4 - Inisialisasi pelacakan tumpukan.
- Lapisan Pengujian: Kunci
- HENTIKAN ID: LOCK_CORRUPTED
- Hentikan kode: 0x205
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Utas pemilik bagian kritis tidak valid.
kemungkinan penyebabPenghentian ini dihasilkan jika ID utas pemilik tidak valid dalam konteks saat ini. Untuk men-debug perhentian ini:
- !cs -s <parameter1> - buang informasi tentang bagian penting ini.
- ln <parameter1> - untuk menampilkan simbol di dekat alamat bagian penting. Ini akan membantu mengidentifikasi bagian penting.
- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Memiliki utas.
- Parameter 3 - Diharapkan memiliki utas.
- Parameter 4 - Bagian kritis men-debug alamat info.
- Lapisan Pengujian: Kunci
- HENTIKAN ID: LOCK_INVALID_OWNER
- Hentikan kode: 0x206
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Jumlah rekursi bagian kritis tidak valid.
kemungkinan penyebabPenghentian ini dihasilkan jika bidang jumlah rekursi dari struktur bagian penting tidak valid dalam konteks saat ini. Untuk men-debug perhentian ini:
- !cs -s <parameter1> - buang informasi tentang bagian penting ini.
- ln <parameter1> - untuk menampilkan simbol di dekat alamat bagian penting. Ini akan membantu mengidentifikasi bagian penting.
- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Jumlah rekursi.
- Parameter 3 - Jumlah rekursi yang diharapkan.
- Parameter 4 - Bagian kritis men-debug alamat info.
- Lapisan Pengujian: Kunci
- HENTIKAN ID: LOCK_INVALID_RECURSION_COUNT
- Hentikan kode: 0x207
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Menghapus bagian penting dengan jumlah kunci yang tidak valid.
kemungkinan penyebabPenghentian ini dihasilkan jika bagian penting dimiliki oleh utas jika dihapus atau jika bagian penting tidak diinisialisasi. Untuk men-debug perhentian ini:
- !cs -s <parameter1> - buang informasi tentang bagian penting ini. Jika utas pemilik adalah 0 bagian penting belum diinisialisasi.
- ln <parameter1> - untuk menampilkan simbol di dekat alamat bagian penting. Ini akan membantu mengidentifikasi bagian penting.
- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Jumlah kunci.
- Parameter 3 - Jumlah kunci yang diharapkan.
- Parameter 4 - Memiliki utas.
- Lapisan Pengujian: Kunci
- HENTIKAN ID: LOCK_INVALID_LOCK_COUNT
- Hentikan kode: 0x208
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Bagian kritis terlalu banyak dirilis atau rusak.
kemungkinan penyebabPemberhentian ini dihasilkan jika bagian penting dirilis lebih banyak kali daripada utas saat ini yang memperolehnya. Untuk men-debug perhentian ini:
- !cs -s <parameter1> - buang informasi tentang bagian penting ini.
- !cs -s -d <parameter4> - buang informasi tentang bagian penting ini.
- ln <parameter1> - untuk menampilkan simbol di dekat alamat bagian penting. Ini akan membantu mengidentifikasi bagian penting.
- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Jumlah kunci.
- Parameter 3 - Jumlah kunci yang diharapkan.
- Parameter 4 - Bagian kritis men-debug alamat info.
- Lapisan Pengujian: Kunci
- HENTIKAN ID: LOCK_OVER_RELEASED
- Hentikan kode: 0x209
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Bagian kritis tidak diinisialisasi.
kemungkinan penyebabPenghentian ini dihasilkan jika bagian penting digunakan tanpa diinisialisasi atau setelah dihapus. Untuk men-debug perhentian ini:
- ln <parameter1> - untuk menampilkan simbol di dekat alamat bagian penting. Ini akan membantu mengidentifikasi bagian penting.
- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Bagian kritis men-debug alamat info.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Kunci
- HENTIKAN ID: LOCK_NOT_INITIALIZED
- Hentikan kode: 0x210
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Bagian penting sudah diinisialisasi.
kemungkinan penyebabPemberhentian ini dihasilkan jika bagian penting diinisialisasi ulang oleh utas saat ini. Untuk men-debug perhentian ini:
- !cs -s <parameter1> atau !cs -s -d <parameter2> - buang informasi tentang bagian penting ini.
- ln <parameter1> - untuk menampilkan simbol di dekat alamat bagian penting. Ini mungkin membantu mengidentifikasi bagian penting jika ini adalah variabel global.
- parameter dps3 <> - untuk mengidentifikasi jalur kode untuk inisialisasi pertama dari bagian penting ini.
- kb - untuk menampilkan jejak tumpukan saat ini, yaitu menginisialisasi ulang bagian penting ini.
- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Bagian kritis men-debug alamat info.
- Parameter 3 - Pelacakan tumpukan inisialisasi pertama. Gunakan dps untuk mencadangkannya jika non-NULL
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Kunci
- HENTIKAN ID: LOCK_ALREADY_INITIALIZED
- Hentikan kode: 0x211
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Membebaskan memori virtual yang berisi bagian penting aktif.
kemungkinan penyebabPemberhentian ini dihasilkan jika utas saat ini memanggil VirtualFree pada blok memori yang berisi bagian penting aktif. Aplikasi harus memanggil DeleteCriticalSection pada bagian penting ini sebelumnya jika membebaskan memori ini.
- kb - untuk menampilkan jejak tumpukan saat ini, yaitu memanggil VirtualFree. Kemungkinan pelakunya adalah DLL yang memanggil VirtualFree.
- !cs -s <parameter1> - buang informasi tentang bagian penting ini.
- parameter2> dps < - untuk mengidentifikasi jalur kode untuk inisialisasi bagian penting ini.
- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Pelacakan tumpukan inisialisasi bagian kritis.
- Parameter 3 - Alamat blok memori.
- Parameter 4 - Ukuran blok memori.
- Lapisan Pengujian: Kunci
- HENTIKAN ID: LOCK_IN_FREED_VMEM
- Hentikan kode: 0x212
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Tidak membongkar wilayah memori yang berisi bagian penting aktif.
kemungkinan penyebabPenghentian ini dihasilkan jika utas saat ini memanggil UnmapViewOfFile pada blok memori yang berisi bagian penting aktif. Aplikasi harus memanggil DeleteCriticalSection pada bagian penting ini sebelumnya jika membatalkan peta memori ini.
- kb - untuk menampilkan jejak tumpukan saat ini, yaitu memanggil UnmapViewOfFile . Kemungkinan pelakunya adalah DLL yang memanggil UnmapViewOfFile.
- !cs -s <parameter1> - buang informasi tentang bagian penting ini.
- parameter2> dps < - untuk mengidentifikasi jalur kode untuk inisialisasi bagian penting ini.
- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Pelacakan tumpukan inisialisasi bagian kritis.
- Parameter 3 - Alamat blok memori.
- Parameter 4 - Ukuran blok memori.
- Lapisan Pengujian: Kunci
- HENTIKAN ID: LOCK_IN_UNMAPPED_MEM
- Hentikan kode: 0x213
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Utas saat ini tidak memiliki bagian penting apa pun.
kemungkinan penyebabPemberhentian ini dihasilkan jika utas saat ini memanggil LeaveCriticalSection tetapi, menurut pembatasan pemverifikasi internal, alur tersebut tidak memiliki bagian penting apa pun. Jika \<parameter2\> adalah nol, mungkin ini adalah bug di utas saat ini. Ini mencoba meninggalkan bagian penting yang tidak dimasukkan, atau mungkin memanggil LeaveCriticalSection lebih banyak kali daripada yang disebut EnterCriticalSection untuk bagian kritis yang sama. Jika \<parameter2\> bukan nol (ini adalah angka bilangan bulat negatif) struktur data pemverifikasi internal mungkin rusak.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Jumlah bagian penting yang dimiliki oleh utas saat ini.
- Parameter 3 - Tidak digunakan
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: Kunci
- HENTIKAN ID: THREAD_NOT_LOCK_OWNER
- Hentikan kode: 0x214
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Menggunakan bagian penting yang bersifat privat ke DLL lain.
kemungkinan penyebabPemberhentian ini dihasilkan jika utas saat ini mencoba menggunakan kunci privat yang berada di dalam DLL lain. Misalnya, a.dll mencoba memasukkan bagian penting yang ditentukan di dalam ntdll.dll. Kunci privat tidak dapat digunakan di seluruh DLL.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat bagian kritis.
- Parameter 2 - Tidak digunakan.
- Parameter 3 - Tidak digunakan
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: Kunci
- HENTIKAN ID: LOCK_PRIVATE
- Hentikan kode: 0x215
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Detail Penghentian SRWLock
Kunci SRW tidak diinisialisasi.
kemungkinan penyebabPemberhentian ini dihasilkan jika utas mencoba menggunakan kunci SRW (Param1) yang tidak diinisialisasi. Untuk men-debug perhentian ini, gunakan 'kb' untuk mendapatkan jejak tumpukan saat ini. Di sinilah kunci SRW digunakan. Kunci SRW harus diinisialisasi menggunakan 'InitializeSRWLock' sebelum dapat digunakan.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Kunci SRW
- Parameter 2 - Tidak digunakan
- Parameter 3 - Tidak digunakan
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: SRWLock
- HENTIKAN ID: NOT_INITIALIZED
- Hentikan kode: 0x250
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Kunci SRW sudah diinisialisasi.
kemungkinan penyebabPemberhentian ini dihasilkan jika kunci SRW (Param1) sedang diinisialisasi ulang. Jika kunci SRW sedang digunakan secara aktif oleh utas lain, menginisialisasi ulang kunci akan mengakibatkan perilaku yang tidak dapat diprediksi oleh aplikasi termasuk macet dan crash. Jejak tumpukan inisialisasi dapat menunjukkan peroleh jika kunci SRW diinisialisasi secara statis. Untuk men-debug perhentian ini:
- kb - untuk mendapatkan jejak tumpukan saat ini. Di sinilah kunci SRW sedang diinisialisasi ulang.
- parameter dps3>< - untuk mendapatkan jejak tumpukan inisialisasi kunci SRW. Jejak tumpukan ini mungkin menunjukkan peroleh jika kunci diinisialisasi secara statis.
- Parameter 1 - Kunci SRW
- Parameter 2 - ThreadId dari utas yang menginisialisasi kunci SRW.
- Parameter 3 - Alamat pelacakan tumpukan inisialisasi. Gunakan alamat< dps >untuk melihat di mana kunci SRW diinisialisasi.
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: SRWLock
- HENTIKAN ID: ALREADY_INITIALIZED
- Hentikan kode: 0x251
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Acquire-Release yang tidak cocok pada kunci SRW.
kemungkinan penyebabPemberhentian ini dihasilkan jika kunci SRW (Param1) dirilis dengan API rilis yang salah. Jika kunci SRW diperoleh untuk akses bersama dan dirilis menggunakan API rilis eksklusif atau kunci SRW diperoleh untuk akses eksklusif dan sedang dirilis menggunakan API rilis bersama. Ini dapat mengakibatkan perilaku yang tidak dapat diprediksi oleh aplikasi termasuk macet dan crash. Untuk men-debug perhentian ini:
- kb - untuk mendapatkan jejak tumpukan saat ini. Di sinilah kunci SRW dirilis menggunakan API yang salah.
- parameter dps3 <> - untuk mendapatkan jejak tumpukan akuisisi kunci SRW.
- Parameter 1 - Kunci SRW
- Parameter 2 - ThreadId dari utas yang memperoleh kunci SRW.
- Parameter 3 - Alamat pelacakan tumpukan perolehan. Gunakan alamat< dps >untuk melihat di mana kunci SRW diperoleh.
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: SRWLock
- HENTIKAN ID: MISMATCHED_ACQUIRE_RELEASE
- Hentikan kode: 0x252
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Kunci SRW diperoleh secara rekursif oleh utas yang sama.
kemungkinan penyebabPemberhentian ini dihasilkan jika kunci SRW (Param1) diperoleh secara rekursif oleh utas yang sama. Ini akan mengakibatkan kebuntuan dan utas akan memblokir tanpa batas waktu. Akuisisi rekursif kunci SRW dalam mode eksklusif akan menyebabkan kebuntuan. Akuisisi rekursif kunci SRW dalam mode bersama akan menyebabkan kebuntuan ketika ada utas yang menunggu akses eksklusif. Pertimbangkan contoh di bawah ini: - Utas A memperoleh kunci SRW dalam mode bersama - Utas B mencoba memperoleh kunci SRW dalam mode eksklusif dan menunggu - Utas A mencoba memperoleh kunci SRW dalam mode bersama secara rekursif. Ini akan berhasil selama tidak ada pelayan eksklusif (dalam hal ini B). Karena kunci SRW tidak memiliki penulis kelaparan, utas A menunggu di belakang utas B. Sekarang, Thread B sedang menunggu Thread A yang pada gilirannya menunggu Thread B menyebabkan menunggu melingkar dan karenanya kebuntuan. Untuk men-debug perhentian ini:
- kb - untuk mendapatkan jejak tumpukan saat ini. Di sinilah kunci SRW diperoleh secara rekursif.
- parameter dps2>< - untuk mendapatkan jejak tumpukan untuk peroleh pertama.
- Parameter 1 - Kunci SRW
- Parameter 2 - Alamat pelacakan tumpukan perolehan pertama. Gunakan alamat< dps >untuk melihat di mana kunci SRW diperoleh.
- Parameter 3 - Tidak digunakan
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: SRWLock
- HENTIKAN ID: RECURSIVE_ACQUIRE
- Hentikan kode: 0x253
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Utas yang keluar atau dihentikan memiliki kunci SRW.
kemungkinan penyebabPemberhentian ini dihasilkan jika utas (Param2) yang memiliki kunci SRW (Param1) keluar atau dihentikan. Ini akan mengakibatkan kunci SRW yatim piatu dan utas yang mencoba memperoleh kunci ini akan memblokir tanpa batas waktu. Untuk men-debug perhentiannya:
- kb - untuk mendapatkan jejak tumpukan saat ini. Di sinilah utas keluar atau sedang dihentikan.
- parameter dps3<> - untuk mendapatkan jejak tumpukan akuisisi kunci SRW.
- Parameter 1 - Kunci SRW
- Parameter 2 - ThreadId dari utas yang keluar atau dihentikan.
- Parameter 3 - Alamat pelacakan tumpukan perolehan. Gunakan alamat< dps >untuk melihat di mana kunci SRW diperoleh.
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: SRWLock
- HENTIKAN ID: EXIT_THREAD_OWNS_LOCK
- Hentikan kode: 0x254
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Kunci SRW yang dirilis tidak diperoleh oleh utas ini.
kemungkinan penyebabPemberhentian ini dihasilkan jika kunci SRW (Param1) sedang dirilis oleh utas (Param2) yang tidak memperoleh kunci. Ini mewakili praktik pemrograman buruk yang sulit untuk mendapatkan hak dan dapat menyebabkan perilaku yang tidak dapat diprediksi oleh aplikasi. Untuk men-debug perhentian ini:
- kb - untuk mendapatkan jejak tumpukan saat ini. Di sinilah utas merilis kunci SRW yang tidak diperolehnya.
- parameter dps4>< - untuk mendapatkan jejak tumpukan akuisisi kunci SRW.
- Parameter 1 - Kunci SRW
- Parameter 2 - Current ThreadId.
- Parameter 3 - ThreadId dari utas yang memperoleh kunci SRW.
- Parameter 4 - Alamat pelacakan tumpukan perolehan. Gunakan alamat< dps >untuk melihat di mana kunci SRW diperoleh.
- Lapisan Pengujian: SRWLock
- HENTIKAN ID: INVALID_OWNER
- Hentikan kode: 0x255
- Tingkat Keparahan: Peringatan
- Kesalahan satu kali:
- Laporan kesalahan: Tidak Ada
- Masuk ke file: ya
- Buat backtrace: ya
Memori yang dibesarkan berisi kunci SRW aktif.
kemungkinan penyebabPenghentian ini dihasilkan jika alamat memori (Param1) yang dibebaskan berisi kunci SRW aktif yang masih digunakan. Ini dapat mengakibatkan perilaku yang tidak dapat diprediksi oleh aplikasi termasuk crash dan macet. Untuk men-debug perhentian ini:
- kb - untuk mendapatkan jejak tumpukan saat ini. Di sinilah memori sedang dibesarkan yang berisi kunci SRW aktif.
- parameter dps4>< - untuk mendapatkan jejak tumpukan akuisisi kunci SRW.
- Parameter 1 - Kunci SRW
- Parameter 2 - Alamat memori yang dibebersarkan.
- Parameter 3 - ThreadId dari utas yang memperoleh kunci SRW.
- Parameter 4 - Alamat pelacakan tumpukan perolehan. Gunakan alamat< dps >untuk melihat di mana kunci SRW diperoleh.
- Lapisan Pengujian: SRWLock
- HENTIKAN ID: IN_FREED_MEMORY
- Hentikan kode: 0x256
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
DLL yang dibongkar berisi kunci SRW aktif.
kemungkinan penyebabPenghentian ini dihasilkan jika DLL yang dibongkar (Param2) berisi kunci SRW aktif (Param1) yang masih digunakan. Ini dapat mengakibatkan perilaku yang tidak dapat diprediksi oleh aplikasi termasuk crash dan macet. Untuk men-debug perhentian ini:
- kb - untuk mendapatkan jejak tumpukan saat ini. Di sinilah DLL sedang dibongkar yang berisi kunci SRW aktif.
- du <parameter2> - untuk menemukan nama DLL yang sedang dibongkar.
- parameter dps4>< - untuk mendapatkan jejak tumpukan akuisisi kunci SRW.
- Parameter 1 - Kunci SRW
- Parameter 2 - Alamat nama DLL yang dibongkar. Gunakan du <address> untuk melihat nama.
- Parameter 3 - ThreadId dari utas yang memperoleh kunci SRW.
- Parameter 4 - Alamat pelacakan tumpukan perolehan. Gunakan alamat< dps >untuk melihat di mana kunci SRW diperoleh.
- Lapisan Pengujian: SRWLock
- HENTIKAN ID: IN_UNLOADED_DLL
- Hentikan kode: 0x257
- Tingkat Keparahan: Peringatan
- Kesalahan satu kali:
- Laporan kesalahan: Tidak Ada
- Masuk ke file: ya
- Buat backtrace: ya
Detail Perhentian Memori
Membebaskan blok memori virtual dengan ukuran atau alamat mulai yang tidak valid.
kemungkinan penyebabPenghentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi VirtualFree atau bongkar DLL dengan alamat mulai atau ukuran alokasi memori yang tidak valid. Dalam kasus DLL membongkar ini mungkin berarti kerusakan memori di dalam daftar DLL yang dimuat. Untuk men-debug perhentian ini, lihat jejak tumpukan saat ini dan alamat memori dan ukuran yang akan dibebaskan dan coba tentukan mengapa pelacakan tumpukan tidak valid.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat dasar alokasi.
- Parameter 2 - Ukuran wilayah memori.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: INVALID_FREEMEM
- Hentikan kode: 0x600
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Panggilan alokasi virtual salah.
kemungkinan penyebabPenghentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi panggilan VirtualAlloc dengan alamat mulai atau ukuran alokasi memori yang tidak valid. Untuk men-debug perhentian ini, lihat jejak tumpukan saat ini (kb) dan alamat dan ukuran memori yang akan dialokasikan dan coba tentukan mengapa mereka tidak valid.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Pointer ke alamat dasar alokasi.
- Parameter 2 - Pointer ke ukuran wilayah memori.
- Parameter 3 - Tidak digunakan
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: INVALID_ALLOCMEM
- Hentikan kode: 0x601
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Panggilan tampilan peta yang salah.
kemungkinan penyebabPemberhentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi panggilan MapViewOfFile dengan alamat dasar atau ukuran pemetaan yang tidak valid. Untuk men-debug penghentian ini, lihat jejak tumpukan saat ini (kb) dan alamat dan ukuran memori yang akan dipetakan dan coba tentukan mengapa tidak valid.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Pointer untuk memetakan alamat dasar.
- Parameter 2 - Pointer untuk melihat ukuran.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: INVALID_MAPVIEW
- Hentikan kode: 0x602
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Memeriksa alamat yang tidak valid.
kemungkinan penyebabPenghentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi panggilan IsBadXXXPtr dengan alamat yang tidak valid (misalnya alamat mode kernel, bukan alamat mode pengguna normal) agar buffer memori diselimuti. Untuk men-debug penghentian ini, lihat jejak tumpukan saat ini (kb) dan coba tentukan mengapa pemanggil fungsi IsBadXXXPtr berakhir dengan alamat yang tidak valid. Sering kali, alamatnya palsu biasa, misalnya pointer yang tidak diinisialisasi. Pustaka MSDN mencantumkan beberapa alasan mengapa aplikasi tidak boleh menggunakan API IsBadXXXPtr: Dalam lingkungan multitugas preemptive, dimungkinkan bagi beberapa utas lain untuk mengubah akses proses ke memori yang sedang diuji. Dereferensi pointer yang berpotensi tidak valid dapat menonaktifkan ekspansi tumpukan di utas lain. Utas yang menghabiskan tumpukannya, ketika ekspansi tumpukan telah dinonaktifkan, menghasilkan penghentian segera proses induk, tanpa jendela kesalahan pop-up atau informasi diagnostik. Utas dalam suatu proses diharapkan untuk bekerja sama singgahan sehingga seseorang tidak akan membebaskan memori yang dibutuhkan yang lain. Penggunaan fungsi ini tidak meniadakan kebutuhan untuk melakukan ini. Jika ini tidak dilakukan, aplikasi mungkin gagal dengan cara yang tidak dapat diprediksi. Karena semua alasan ini, sebaiknya jangan pernah menggunakan API ini.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Mulai alamat.
- Parameter 2 - Ukuran blok memori.
- Parameter 3 - Alamat tidak valid.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: PROBE_INVALID_ADDRESS
- Hentikan kode: 0x603
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Memeriksa memori bebas.
kemungkinan penyebabPenghentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi panggilan IsBadXXXPtr untuk alokasi memori yang gratis. Ini sangat buruk karena ada kemungkinan bahwa, dalam beberapa kasus lain, memori ini sudah digunakan kembali untuk beberapa alokasi lain. Karena jalur kode saat ini (kb) tidak memiliki memori itu, itu bisa berakhir merusak memori orang lain, dengan efek bencana. Untuk men-debug penghentian ini, lihat jejak tumpukan saat ini (kb) dan coba tentukan mengapa pemanggil fungsi IsBadXXXPtr akhirnya memeriksa memori bebas. Alamatnya bisa berupa palsu biasa (misalnya pointer yang tidak diinisialisasi) atau mungkin sudah dibebaskan memorinya. Jika memori sudah dibebaskan oleh salah satu API VirtualFree atau UnmapViewOfFile, '!avrf -vs -a parameter3' akan mencari log jejak tumpukan jalur kode yang mengalokasikan/membebaskan alamat tersebut dan menampilkan jejak tumpukan ini jika tersedia. Ini mungkin menunjukkan jejak tumpukan yang membebaskan memori ini. Lebih sering, memori adalah alokasi timbunan yang sudah dibesarkan. Untuk memeriksa kemungkinan tersebut, '!avrf -hp -a parameter3' akan mencari log jejak tumpukan jalur kode yang mengalokasikan/membebaskan alamat tersebut dari/ke timbunan dan menampilkan jejak tumpukan ini jika tersedia. Pustaka MSDN mencantumkan beberapa alasan mengapa aplikasi tidak boleh menggunakan API IsBadXXXPtr: Dalam lingkungan multitugas preemptive, dimungkinkan bagi beberapa utas lain untuk mengubah akses proses ke memori yang sedang diuji. Dereferensi pointer yang berpotensi tidak valid dapat menonaktifkan ekspansi tumpukan di utas lain. Utas yang menghabiskan tumpukannya, ketika ekspansi tumpukan telah dinonaktifkan, menghasilkan penghentian segera proses induk, tanpa jendela kesalahan pop-up atau informasi diagnostik. Utas dalam suatu proses diharapkan untuk bekerja sama singgahan sehingga seseorang tidak akan membebaskan memori yang dibutuhkan yang lain. Penggunaan fungsi ini tidak meniadakan kebutuhan untuk melakukan ini. Jika ini tidak dilakukan, aplikasi mungkin gagal dengan cara yang tidak dapat diprediksi. Karena semua alasan ini, sebaiknya jangan pernah menggunakan API ini.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Mulai alamat.
- Parameter 2 - Ukuran blok memori.
- Parameter 3 - Alamat halaman memori gratis.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: PROBE_FREE_MEM
- Hentikan kode: 0x604
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Memeriksa halaman penjaga.
kemungkinan penyebabPenghentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi panggilan IsBadXXXPtr untuk alokasi memori yang berisi setidaknya satu GUARD_PAGE. Ini sangat buruk karena sangat mungkin bahwa GUARD_PAGE ini adalah akhir dari tumpukan utas saat ini. Seperti yang didokumenkan dalam pustaka MSDN: Mendereferensikan pointer yang berpotensi tidak valid dapat menonaktifkan ekspansi tumpukan di utas lain. Utas yang menghabiskan tumpukannya, ketika ekspansi tumpukan telah dinonaktifkan, menghasilkan penghentian segera proses induk, tanpa jendela kesalahan pop-up atau informasi diagnostik. Untuk men-debug perhentian ini, lihat jejak tumpukan saat ini (kb) dan coba tentukan mengapa pemanggil fungsi IsBadXXXPtr akhirnya memeriksa GUARD_PAGE. Pustaka MSDN mencantumkan beberapa alasan mengapa aplikasi tidak boleh menggunakan API IsBadXXXPtr: Dalam lingkungan multitugas preemptive, dimungkinkan bagi beberapa utas lain untuk mengubah akses proses ke memori yang sedang diuji. Dereferensi pointer yang berpotensi tidak valid dapat menonaktifkan ekspansi tumpukan di utas lain. Utas yang menghabiskan tumpukannya, ketika ekspansi tumpukan telah dinonaktifkan, menghasilkan penghentian segera proses induk, tanpa jendela kesalahan pop-up atau informasi diagnostik. Utas dalam suatu proses diharapkan untuk bekerja sama singgahan sehingga seseorang tidak akan membebaskan memori yang dibutuhkan yang lain. Penggunaan fungsi ini tidak meniadakan kebutuhan untuk melakukan ini. Jika ini tidak dilakukan, aplikasi mungkin gagal dengan cara yang tidak dapat diprediksi. Karena semua alasan ini, sebaiknya jangan pernah menggunakan API ini.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Mulai alamat.
- Parameter 2 - Ukuran blok memori.
- Parameter 3 - Alamat halaman penjaga.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: PROBE_GUARD_PAGE
- Hentikan kode: 0x605
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Memeriksa alamat NULL.
kemungkinan penyebabPenghentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi panggilan IsBadXXXPtr dengan alamat NULL. Untuk men-debug perhentian ini, lihat jejak tumpukan saat ini (kb) dan coba tentukan mengapa pemanggil fungsi IsBadXXXPtr berakhir dengan alamat NULL. Ini biasanya merupakan tanda seseorang yang tidak memeriksa nilai pengembalian salah satu fungsi alokasi memori. Misalnya kode di bawah ini salah:
void Use(PVOID p);
int main(void) {
PVOID p;
p = malloc(1024);
Use(p);
return 0;
}
void Use(PVOID p) {
if (IsBadReadPtr(p)) {
return;
}
// p is safe to be used here.
}
Kode ini harus ditulis ulang sebagai berikut:
int main (void)
{
PVOID p;
p = malloc (1024);
if (NULL == p)) {
return -1;
}
Use (p);
return 0;
}
void Use (PVOID p)
{
//
// p is safe to be used here.
//
}
Pustaka MSDN mencantumkan beberapa alasan mengapa aplikasi tidak boleh menggunakan API IsBadXXXPtr: Dalam lingkungan multitugas preemptive, dimungkinkan bagi beberapa utas lain untuk mengubah akses proses ke memori yang sedang diuji. Dereferensi pointer yang berpotensi tidak valid dapat menonaktifkan ekspansi tumpukan di utas lain. Utas yang menghabiskan tumpukannya, ketika ekspansi tumpukan telah dinonaktifkan, menghasilkan penghentian segera proses induk, tanpa jendela kesalahan pop-up atau informasi diagnostik. Utas dalam suatu proses diharapkan untuk bekerja sama singgahan sehingga seseorang tidak akan membebaskan memori yang dibutuhkan yang lain. Penggunaan fungsi ini tidak meniadakan kebutuhan untuk melakukan ini. Jika ini tidak dilakukan, aplikasi mungkin gagal dengan cara yang tidak dapat diprediksi. Karena semua alasan ini, sebaiknya jangan pernah menggunakan API ini.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Tidak digunakan.
- Parameter 2 - Tidak digunakan.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: PROBE_NULL
- Hentikan kode: 0x606
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Memeriksa blok memori dengan alamat mulai atau ukuran yang tidak valid.
kemungkinan penyebabPenghentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi panggilan IsBadXXXPtr dengan alamat mulai yang tidak valid (misalnya alamat mode kernel, bukan alamat mode pengguna normal) atau ukuran yang tidak valid agar buffer memori diselimuti. Untuk men-debug penghentian ini, lihat jejak tumpukan saat ini (kb) dan coba tentukan mengapa pemanggil fungsi IsBadXXXPtr berakhir dengan alamat atau ukuran yang tidak valid. Sering kali, alamat atau ukurannya adalah palsu biasa, misalnya variabel yang tidak diinisialisasi. Pustaka MSDN mencantumkan beberapa alasan mengapa aplikasi tidak boleh menggunakan API IsBadXXXPtr: Dalam lingkungan multitugas preemptive, dimungkinkan bagi beberapa utas lain untuk mengubah akses proses ke memori yang sedang diuji. Dereferensi pointer yang berpotensi tidak valid dapat menonaktifkan ekspansi tumpukan di utas lain. Utas yang menghabiskan tumpukannya, ketika ekspansi tumpukan telah dinonaktifkan, menghasilkan penghentian segera proses induk, tanpa jendela kesalahan pop-up atau informasi diagnostik. Utas dalam suatu proses diharapkan untuk bekerja sama singgahan sehingga seseorang tidak akan membebaskan memori yang dibutuhkan yang lain. Penggunaan fungsi ini tidak meniadakan kebutuhan untuk melakukan ini. Jika ini tidak dilakukan, aplikasi mungkin gagal dengan cara yang tidak dapat diprediksi. Karena semua alasan ini, sebaiknya jangan pernah menggunakan API ini.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Mulai alamat.
- Parameter 2 - Ukuran blok memori.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: PROBE_INVALID_START_OR_SIZE
- Hentikan kode: 0x607
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Membongkar DLL dengan ukuran atau alamat mulai yang tidak valid.
kemungkinan penyebabPenghentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi pembongkaran DLL dengan alamat mulai atau ukuran rentang memori DLL yang tidak valid. Ini mungkin berarti kerusakan memori di dalam daftar DLL internal ntdll.dll dimuat.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat dasar memori DLL.
- Parameter 2 Ukuran rentang memori - DLL.
- Parameter 3 - Alamat nama DLL. Gunakan du untuk membuangnya.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: INVALID_DLL_RANGE
- Hentikan kode: 0x608
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Membebaskan blok memori di dalam rentang alamat tumpukan utas saat ini.
kemungkinan penyebabPenghentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi VirtualFree untuk blok memori yang sebenarnya merupakan bagian dari tumpukan utas saat ini (!). Untuk men-debug penghentian ini, lihat jejak tumpukan saat ini (kb) dan coba pahami mengapa fungsi yang disebut VirtualFree berpikir bahwa blok memori dialokasikan atau dipetakan secara dinamis tetapi itu sebenarnya memori yang dialokasikan dari tumpukan.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat dasar alokasi.
- Parameter 2 - Ukuran wilayah memori.
- Parameter 3 - Tumpukan alamat batas rendah.
- Parameter 4 - Tumpukan alamat batas tinggi.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: FREE_THREAD_STACK_MEMORY
- Hentikan kode: 0x609
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Parameter FreeType yang salah untuk operasi VirtualFree.
kemungkinan penyebabPenghentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi VirtualFree dengan nilai yang salah untuk parameter FreeType. Satu-satunya dua nilai yang dapat diterima untuk parameter ini adalah MEM_DECOMMIT dan MEM_RELEASE. Jika VirtualFree dipanggil dengan nilai lain kecuali keduanya, VirtualFree akan gagal membebaskan memori. Untuk men-debug pemberhentian ini, lihat jejak tumpukan saat ini (kb): pemanggil VirtualFree mungkin adalah pelakunya.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Nilai salah yang digunakan oleh aplikasi.
- Parameter 2 - Nilai benar yang diharapkan 1.
- Parameter 3 - Nilai benar yang diharapkan 2.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: INVALID_FREE_TYPE
- Hentikan kode: 0x60A
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Mencoba membebaskan blok memori virtual yang sudah gratis.
kemungkinan penyebabPemberhentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi VirtualFree untuk alamat yang sudah gratis. Untuk men-debug penghentian ini, lihat jejak tumpukan saat ini (kb) dan coba tentukan mengapa memori sudah gratis tetapi aplikasi mencoba membebaskannya lagi. '!avrf -vs -a parameter1' akan mencari log jejak tumpukan jalur kode yang mengalokasikan/membebaskan alamat tersebut dan menampilkan jejak tumpukan ini jika tersedia. Ini mungkin menunjukkan jejak tumpukan yang membebaskan memori ini.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat blok memori.
- Parameter 2 - Tidak digunakan.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: MEM_ALREADY_FREE
- Hentikan kode: 0x60B
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Parameter Ukuran yang salah untuk operasi VirtualFree (MEM_RELEASE).
kemungkinan penyebabPenghentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi VirtualFree (MEM_RELEASE) dengan nilai bukan nol untuk parameter dwSize. Saat menggunakan MEM_RELEASE , satu-satunya nilai yang dapat diterima untuk parameter ini adalah 0. Jika VirtualFree dipanggil dengan nilai lain kecuali 0, VirtualFree akan gagal membebaskan memori. Untuk men-debug pemberhentian ini, lihat jejak tumpukan saat ini (kb): pemanggil VirtualFree mungkin adalah pelakunya.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Ukuran salah yang digunakan oleh aplikasi.
- Parameter 2 - Diharapkan ukuran benar (0).
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: INVALID_FREE_SIZE
- Hentikan kode: 0x60C
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Pengecualian tak terduga dimunculkan dalam rutinitas titik masuk DLL.
kemungkinan penyebabPenghentian ini dihasilkan jika fungsi titik masuk DLL (DllMain) meningkatkan pengecualian. Salah satu contoh mengapa ini buruk adalah: jika DllMain(DLL_PROCESS_ATTACH) meningkatkan pengecualian, pemuat DLL Windows akan: - Menangkap dan menyembunyikan pengecualian; - Membongkar DLL tanpa memanggil DllMain(DLL_PROCESS_DETACH). Jadi dalam banyak kasus DLL sudah mengalokasikan beberapa sumber daya, maka itu memunculkan pengecualian, dan tidak akan memiliki kesempatan untuk merilis sumber daya ini di DllMain (DLL_PROCESS_DETACH). Untuk men-debug perhentian ini:
- **du \<*parameter1*\>** - untuk menampilkan nama DLL. - **.exr \<*parameter2*\>** - untuk menampilkan informasi pengecualian. - **.cxr \<*parameter3*\>** diikuti oleh **kb** - untuk menampilkan informasi konteks pengecualian dan jejak tumpukan untuk saat pengecualian dinaikkan. - **\<*parameter4*\>** adalah alamat struktur pemverifikasi internal dan tidak memiliki signifikansi untuk sebagian besar pengguna pemverifikasi. Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Nama DLL (gunakan du untuk mencadangkannya).
- Parameter 2 - Catatan pengecualian. Gunakan .exr untuk menampilkannya.
- Parameter 3 - Rekaman konteks. Gunakan .cxr untuk menampilkannya.
- Parameter 4 - Pendeskripsi dll pemverifikasi
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: DLL_UNEXPECTED_EXCEPTION
- Hentikan kode: 0x60D
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Pengecualian tak terduga yang dimunculkan dalam fungsi utas.
kemungkinan penyebabPenghentian ini dihasilkan jika fungsi utas meningkatkan pengecualian. Ini buruk karena seluruh proses akan dimatikan. Untuk men-debug perhentian ini:
- < parameter1> mungkin signifikan untuk jenis pengecualian. Misalnya, kode pengecualian C0000005 berarti Pelanggaran Akses.
- .exr <parameter2> - untuk menampilkan informasi pengecualian.
- .cxr <parameter3> diikuti oleh kb - untuk menampilkan informasi konteks pengecualian
- Parameter 1 - Kode pengecualian.
- Parameter 2 - Catatan pengecualian. Gunakan .exr untuk menampilkannya.
- Parameter 3 - Rekaman konteks. Gunakan .cxr untuk menampilkannya.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: THREAD_UNEXPECTED_EXCEPTION
- Hentikan kode: 0x60E
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Pengecualian tak terduga muncul saat memeriksa memori.
kemungkinan penyebabPemberhentian ini dihasilkan jika kita mendapatkan pengecualian selama panggilan IsBadXXXPtr. Ini berarti bahwa buffer memori yang kita periksa tidak benar-benar memiliki perlindungan yang diasumsikan oleh pemanggil, atau bahwa memori sudah dibebaskan, dll. Lihat diskusi di atas tentang kode berhenti lainnya (PROBE_INVALID_ADDRESS, PROBE_FREE_MEM, PROBE_GUARD_PAGE, PROBE_NULL, PROBE_INVALID_START_OR_SIZE) untuk contoh lebih lanjut mengapa menggunakan API IsBadXXXPtr tidak disarankan. Untuk men-debug perhentian ini:
- < parameter1> biasanya akan C0000005, Pelanggaran Akses
- .exr <parameter2> - untuk menampilkan informasi pengecualian
- .cxr <parameter3> diikuti oleh kb - untuk menampilkan informasi konteks pengecualian dan jejak tumpukan pada saat pengecualian dinaikkan
- Parameter 1 - Kode pengecualian.
- Parameter 2 - Catatan pengecualian. Gunakan .exr untuk menampilkannya.
- Parameter 3 - Rekaman konteks. Gunakan .cxr untuk menampilkannya.
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: PROBE_UNEXPECTED_EXCEPTION
- Hentikan kode: 0x60F
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Mencoba mereset alamat NULL.
kemungkinan penyebabPenghentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi panggilan VirtualFree (MEM_RESET) dengan parameter pertama NULL. MEM_RESET harus digunakan hanya untuk memori yang sudah dialokasikan, jadi NULL bukan parameter pertama yang valid dalam kasus ini.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Tidak digunakan.
- Parameter 2 - Tidak digunakan.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: INVALID_MEM_RESET
- Hentikan kode: 0x610
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Membebaskan blok memori tumpukan di dalam rentang alamat tumpukan utas saat ini.
kemungkinan penyebabPenghentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi HeapFree, untuk blok memori yang sebenarnya merupakan bagian dari tumpukan utas saat ini (!). Untuk men-debug perhentian ini, lihat jejak tumpukan saat ini (kb) dan coba pahami mengapa fungsi yang disebut HeapFree berpikir bahwa blok memori dialokasikan atau dipetakan secara dinamis tetapi itu sebenarnya memori yang dialokasikan dari tumpukan.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat dasar alokasi.
- Parameter 2 - Ukuran wilayah memori.
- Parameter 3 - Tumpukan alamat batas rendah.
- Parameter 4 - Tumpukan alamat batas tinggi.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: FREE_THREAD_STACK_MEMORY_AS_HEAP
- Hentikan kode: 0x612
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Membatalkan pembukaan wilayah memori di dalam rentang alamat tumpukan utas saat ini.
kemungkinan penyebabPenghentian ini dihasilkan jika pemverifikasi aplikasi mendeteksi UnmapViewOfFile, untuk blok memori yang sebenarnya merupakan bagian dari tumpukan utas saat ini (!). Untuk men-debug perhentian ini, lihat jejak tumpukan saat ini (kb) dan coba pahami mengapa fungsi yang disebut UnmapViewOfFile berpikir bahwa blok memori dialokasikan atau dipetakan secara dinamis tetapi itu sebenarnya memori yang dialokasikan dari tumpukan.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat dasar alokasi.
- Parameter 2 - Ukuran wilayah memori.
- Parameter 3 - Tumpukan alamat batas rendah.
- Parameter 4 - Tumpukan alamat batas tinggi.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: FREE_THREAD_STACK_MEMORY_AS_MAP
- Hentikan kode: 0x613
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Alamat RTL_RESOURCE salah.
kemungkinan penyebabPenghentian ini dihasilkan jika aplikasi mencoba menggunakan NULL atau alamat lain yang salah (misalnya alamat mode kernel) sebagai alamat objek yang valid. RtlInitializeResource (NULL) adalah panggilan API yang salah yang akan memicu penghentian pemverifikasi semacam ini. *Parameter1* adalah alamat yang salah digunakan dan pelakunya ada di pelacakan tumpukan (tampilkan dengan kb).
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat.
- Parameter 2 - Tidak digunakan.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: INVALID_RESOURCE_ADDRESS
- Hentikan kode: 0x614
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Alamat bagian kritis tidak valid.
kemungkinan penyebabPenghentian ini dihasilkan jika aplikasi mencoba menggunakan NULL atau alamat lain yang salah (misalnya alamat mode kernel) sebagai alamat objek yang valid. EnterCriticalSection(NULL) adalah panggilan API yang salah yang akan memicu penghentian pemverifikasi semacam ini. *Parameter1* adalah alamat yang salah digunakan dan pelakunya ada di pelacakan tumpukan (tampilkan dengan kb).
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat.
- Parameter 2 - Tidak digunakan.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: INVALID_CRITSECT_ADDRESS
- Hentikan kode: 0x615
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Coba jalankan kode dalam memori yang tidak dapat dieksekusi.
kemungkinan penyebabPemberhentian ini dihasilkan jika aplikasi mencoba menjalankan kode dari alamat yang tidak dapat dieksekusi atau gratis. Untuk men-debug perhentian ini:
- u <parameter2> - untuk tidak menyusun kode pelakunya
- .exr <parameter3> - untuk menampilkan informasi pengecualian
- .cxr <parameter4> diikuti oleh kb - untuk menampilkan informasi konteks pengecualian dan jejak tumpukan untuk saat pengecualian dinaikkan.
- Parameter 1 - Alamat sedang diakses.
- Parameter 2 - Kode melakukan akses yang tidak valid.
- Parameter 3 - Catatan pengecualian. Gunakan .exr untuk menampilkannya.
- Parameter 4 - Rekaman konteks. Gunakan .cxr untuk menampilkannya.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: THREAD_UNEXPECTED_EXCEPTION_CODE
- Hentikan kode: 0x616
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Pengecualian tak terduga muncul saat menginisialisasi buffer output.
kemungkinan penyebabPemberhentian ini dihasilkan jika kita mendapatkan pengecualian saat menginisialisasi buffer yang ditentukan sebagai parameter output untuk API Win32 atau CRT. Ini biasanya berarti bahwa ukuran buffer output yang ditentukan salah. Untuk men-debug perhentian ini:
- .exr <parameter3> - untuk menampilkan informasi pengecualian.
- .cxr <parameter4> diikuti oleh kb - untuk menampilkan informasi konteks pengecualian dan jejak tumpukan pada saat pengecualian dinaikkan.
- Parameter 1 - Alamat mulai buffer.
- Parameter 2 - Ukuran buffer.
- Parameter 3 - Catatan pengecualian. Gunakan .exr untuk menampilkannya.
- Parameter 4 - Rekaman konteks. Gunakan .cxr untuk menampilkannya.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: OUTBUFF_UNEXPECTED_EXCEPTION
- Hentikan kode: 0x617
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Pengecualian tak terduga ketika mencoba menemukan ukuran blok tumpukan.
kemungkinan penyebabPemberhentian ini dihasilkan jika kita mendapatkan pengecualian saat memanggil HeapSize untuk blok tumpukan yang sedang dibebaskan. Ini biasanya berarti bahwa alamat blok tumpukan yang ditentukan salah atau tumpukan rusak. Untuk men-debug perhentian ini:
- .exr <parameter3> - untuk menampilkan rekaman pengecualian.
- .cxr <parameter4> diikuti oleh kb - untuk menampilkan informasi konteks pengecualian dan jejak tumpukan pada saat pengecualian dinaikkan.
- Parameter 1 - Alamat blok tumpukan yang dibeberkan.
- Parameter 2 - Heap handel.
- Parameter 3 - Catatan pengecualian. Gunakan .exr untuk menampilkannya.
- Parameter 4 - Rekaman konteks. Gunakan .cxr untuk menampilkannya.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: SIZE_HEAP_UNEXPECTED_EXCEPTION
- Hentikan kode: 0x618
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Membebaskan blok memori dengan alamat mulai yang tidak valid.
kemungkinan penyebabPemberhentian ini dihasilkan jika program memanggil VirtualFree (MEM_RELEASE) dengan parameter lpAddress yang bukan alamat dasar yang dikembalikan oleh fungsi VirtualAlloc atau VirtualAllocEx ketika wilayah halaman dicadangkan; Untuk men-debug perhentian ini:
- kb - untuk menampilkan jejak tumpukan saat ini, yaitu memanggil VirtualFree. Kemungkinan pelakunya adalah DLL yang memanggil VirtualFree.
- Parameter 1 - Alamat blok memori yang dibebersarkan.
- Parameter 2 - Diharapkan alamat blok memori yang benar.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: INVALID_FREEMEM_START_ADDRESS
- Hentikan kode: 0x619
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Membatalkan pemblokiran memori dengan alamat mulai yang tidak valid.
kemungkinan penyebabPenghentian ini dihasilkan jika program memanggil UnmapViewOfFile dengan parameter lpBaseAddress yang tidak identik dengan nilai yang dikembalikan oleh panggilan sebelumnya ke fungsi MapViewOfFile atau MapViewOfFileEx. Untuk men-debug perhentian ini:
- kb - untuk menampilkan jejak tumpukan saat ini, yaitu memanggil UnmapViewOfFile. Kemungkinan pelakunya adalah DLL yang memanggil UnmapViewOfFile.
- Parameter 1 - Alamat blok memori tidak dipetakan.
- Parameter 2 - Diharapkan alamat blok memori yang benar.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: INVALID_UNMAPVIEW_START_ADDRESS
- Hentikan kode: 0x619
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
pengecualian tak terduga yang dimunculkan dalam fungsi panggilan balik threadpool.
kemungkinan penyebabPemberhentian ini dihasilkan jika fungsi panggilan balik di utas threadpool meningkatkan pengecualian. Untuk men-debug perhentian ini:
- < parameter1> mungkin signifikan untuk jenis pengecualian. Misalnya, kode pengecualian C0000005 berarti Pelanggaran Akses.
- .exr <parameter2> - untuk menampilkan informasi pengecualian.
- .cxr <parameter3> diikuti oleh kb - untuk menampilkan informasi konteks pengecualian.
- Parameter 1 - Kode pengecualian
- Parameter 2 - Catatan pengecualian. Gunakan .exr untuk menampilkannya
- Parameter 3 - Rekaman konteks. Gunakan .cxr untuk menampilkannya
- Parameter 4 - Tidak digunakan
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: THREADPOOL_UNEXPECTED_EXCEPTION
- Hentikan kode: 0x61B
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
kode dalam memori yang tidak dapat dieksekusi
kemungkinan penyebabPemberhentian ini dihasilkan jika aplikasi mencoba menjalankan kode dari alamat yang tidak dapat dieksekusi atau gratis. Untuk men-debug perhentian ini:
- u <parameter2> - untuk tidak menyusun kode pelakunya
- .exr <parameter3> - untuk menampilkan informasi pengecualian
- .cxr <parameter4> diikuti oleh kb - untuk menampilkan informasi konteks pengecualian dan jejak tumpukan untuk saat pengecualian dinaikkan.
- Parameter 1 - Alamat sedang diakses
- Parameter 2 - Code melakukan akses yang tidak valid
- Parameter 3 - Catatan pengecualian. Gunakan .exr untuk menampilkannya.
- Parameter 4 - Rekaman konteks. Gunakan .cxr untuk menampilkannya.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: THREADPOOL_UNEXPECTED_EXCEPTION_CODE
- Hentikan kode: 0x61C
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Membuat timbunan yang dapat dieksekusi.
kemungkinan penyebabPemberhentian ini dihasilkan jika aplikasi membuat timbunan yang dapat dieksekusi. Ini bisa menjadi risiko keamanan.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Tidak digunakan.
- Parameter 2 - Tidak digunakan.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: EXECUTABLE_HEAP
- Hentikan kode: 0x1D
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Mengalokasikan memori yang dapat dieksekusi.
kemungkinan penyebabPenghentian ini dihasilkan jika aplikasi mengalokasikan memori yang dapat dieksekusi. Ini bisa menjadi risiko keamanan.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Perlindungan halaman ditentukan oleh pemanggil.
- Parameter 2 - Tidak digunakan.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Ingatan
- HENTIKAN ID: EXECUTABLE_MEMORY
- Hentikan kode: 0x1E
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Detail Berhenti TLS
Membongkar DLL yang mengalokasikan indeks TLS yang tidak dibebersarkan.
kemungkinan penyebabPenghentian ini dihasilkan jika DLL yang mengalokasikan indeks TLS sedang dibongkar sebelum membebaskan indeks TLS tersebut. Untuk men-debug perhentian ini:
- du <parameter3> - tampilkan nama DLL pelakunya
- .reload xxx.dll=<parameter4> - muat ulang simbol untuk DLL pelakunya (jika diperlukan). xxx.dll adalah nama DLL yang ditampilkan pada langkah di atas.
- u <parameter2> - membongkar kode yang mengalokasikan TLS. Ini harus menunjuk ke fungsi yang mengalokasikan TLS tetapi lupa membebaskannya sebelum DLL dibongkar.
- Parameter 1 - Indeks TLS
- Parameter 2 - Alamat kode yang mengalokasikan indeks TLS ini.
- Parameter 3 - Alamat nama DLL. Gunakan du untuk membuangnya.
- Parameter 4 - Alamat dasar DLL.
- Lapisan Pengujian: TLS
- HENTIKAN ID: TLS_LEAK
- Hentikan kode: 0x350
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Struktur TLS pemverifikasi rusak.
kemungkinan penyebabPenghentian ini dihasilkan jika struktur pemverifikasi internal yang digunakan untuk menyimpan status slot TLS untuk utas rusak. Sangat mungkin ini karena beberapa korupsi acak dalam prosesnya.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Alamat TEB.
- Parameter 2 - Alamat TEB yang diharapkan.
- Parameter 3 - ID Utas.
- Parameter 4 - ID utas yang diharapkan.
- Lapisan Pengujian: TLS
- HENTIKAN ID: CORRUPTED_TLS
- Hentikan kode: 0x351
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Menggunakan indeks TLS yang tidak valid.
kemungkinan penyebabPenghentian ini dihasilkan jika indeks TLS yang tidak valid digunakan. Dalam kebanyakan kasus, itu karena kode masih menggunakan indeks ini ketika TlsFree dipanggil. Berikut adalah contoh untuk utas threadpool.
- T1: Dll memuat dan TlsAlloc
- T1: Panggilan balik antrean
- T1: Dilewati panggilan balik yang ditunggu/dibatalkan
- T1: TlsFree
- T2: Panggilan balik berjalan dan memanggil TlsSetValue
- T1: Pembongkaran dll
- Parameter 1 - Indeks TLS
- Parameter 2 - Tidak digunakan.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: TLS
- HENTIKAN ID: INVALID_TLS_INDEX
- Hentikan kode: 0x352
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Detail Pemberhentian Threadpool
Prioritas utas threadpool ini telah diubah.
kemungkinan penyebabPenghentian ini dihasilkan jika prioritas utas diubah saat dikembalikan ke threadpool.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Format: - threadpool thread (%x) setelah menjalankan Callback (%p) memiliki prioritas utas yang diubah (%i -> %i)
- Parameter 1 - Fungsi panggilan balik.
- Parameter 2 - Konteks.
- Parameter 3 - Pelacakan tumpukan alokasi Objek Threadpool, gunakan dps untuk mencadangkannya.
- Parameter 4 - Prioritas Saat Ini.
- Lapisan Pengujian: Threadpool
- HENTIKAN ID: INCONSISTENT_PRIORITY
- Hentikan kode: 0x700
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Afinitas utas threadpool ini telah diubah.
kemungkinan penyebabPemberhentian ini dihasilkan jika afinitas utas diubah saat dikembalikan ke threadpool.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Format: - threadpool thread (%x) setelah menjalankan Callback (%p) memiliki masker afinitas utas yang diubah (%p -> %p)
- Parameter 1 - Fungsi panggilan balik.
- Parameter 2 - Konteks.
- Parameter 3 - Pelacakan tumpukan alokasi Objek Threadpool, gunakan dps untuk mencadangkannya.
- Parameter 4 - Afinitas saat ini.
- Lapisan Pengujian: Threadpool
- HENTIKAN ID: INCONSISTENT_AFFINITY_MASK
- Hentikan kode: 0x701
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Msg yang tidak diolah di kumpulan msg utas saat ini.
kemungkinan penyebabPemberhentian ini dihasilkan jika ada pesan yang dibiarkan tidak diolah ketika utas threadpool ini dikembalikan ke kumpulan. Ini berbahaya karena akan diproses dalam konteks yang sama sekali berbeda. Silakan gunakan !avrf -tp <Param4> untuk melihat pesan yang diposting ke utas ini.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Format: Utas - threadpool (%x) setelah menjalankan Callback (%p) memiliki pesan jendela yang luar biasa (%x: %x)
- Parameter 1 - Fungsi panggilan balik.
- Parameter 2 - Konteks.
- Parameter 3 - Pelacakan tumpukan alokasi Objek Threadpool, gunakan dps untuk mencadangkannya.
- Parameter 4 - Threadpool thread id. Silakan gunakan !avrf -tp <threadid> untuk melihat pesan yang diposting ke utas ini.
- Lapisan Pengujian: Threadpool
- HENTIKAN ID: ORPHANED_THREAD_MESSAGE
- Hentikan kode: 0x702
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Jendela yang tidak tertutup milik utas saat ini.
kemungkinan penyebabPemberhentian ini dihasilkan jika ada jendela yang tetap hidup ketika utas threadpool ini dikembalikan ke kumpulan.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Format: - threadpool thread (%x) setelah menjalankan Callback (%p) memiliki hwnd yang valid (%x: %s) yang dapat menerima pesan
- Parameter 1 - Fungsi panggilan balik.
- Parameter 2 - Konteks.
- Parameter 3 - Pelacakan tumpukan alokasi Objek Threadpool, gunakan dps untuk mencadangkannya.
- Parameter 4 - Threadpool thread id.
- Lapisan Pengujian: Threadpool
- HENTIKAN ID: ORPHANED_THREAD_WINDOW
- Hentikan kode: 0x703
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
ExitThread() atau TerminateThread() pada utas threadpool.
kemungkinan penyebabPemberhentian ini dihasilkan jika ExitThread dipanggil pada utas threadpool. Ini dilarang karena akan membuat sistem tidak stabil. Ini akan menyebabkan kebocoran sumber daya, pembekuan, atau AV.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Fungsi panggilan balik.
- Parameter 2 - Konteks.
- Parameter 3 - Pelacakan tumpukan alokasi Objek Threadpool, gunakan dps untuk mencadangkannya.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Threadpool
- HENTIKAN ID: ILLEGAL_THREAD_TERMINATION
- Hentikan kode: 0x704
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Utas dalam keadaan peniruan ketika dikembalikan ke utas threadpool.
kemungkinan penyebabPemberhentian ini dihasilkan jika fungsi panggilan balik mengubah token utas untuk meniru pengguna lain dan lupa mengatur ulang sebelum mengembalikannya kembali ke threadpool.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Fungsi panggilan balik.
- Parameter 2 - Konteks.
- Parameter 3 - Pelacakan tumpukan alokasi Objek Threadpool, gunakan dps untuk mencadangkannya.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Threadpool
- HENTIKAN ID: THREAD_IN_IMPERSONATION
- Hentikan kode: 0x705
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Fungsi yang memerlukan utas persisten dipanggil.
kemungkinan penyebabBeberapa API Microsoft Windows perlu dipanggil di dalam utas khusus atau persisten. Dalam threadpool, Anda umumnya harus menghindari penggunaan penyimpanan lokal utas dan mengantre panggilan asinkron yang memerlukan utas persisten, seperti fungsi RegNotifyChangeKeyValue. Namun, fungsi tersebut dapat diantrekan ke utas pekerja persisten menggunakan QueueUserWorkItem dengan opsi WT_EXECUTEINPERSISTENTTHREAD. Kb dalam debugger akan mengungkapkan pemanggil.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Fungsi panggilan balik.
- Parameter 2 - Konteks.
- Parameter 3 - Pelacakan tumpukan alokasi Objek Threadpool, gunakan dps untuk mencadangkannya.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Threadpool
- HENTIKAN ID: PERSISTED_THREAD_NEEDED
- Hentikan kode: 0x706
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Utas dalam keadaan transaksi kotor.
kemungkinan penyebabPemberhentian ini dihasilkan jika fungsi panggilan balik lupa menutup atau mengatur ulang handel transaksi saat ini.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Fungsi panggilan balik.
- Parameter 2 - Konteks.
- Parameter 3 - Pelacakan tumpukan alokasi Objek Threadpool, gunakan dps untuk mencadangkannya.
- Parameter 4 - Handel Transaksi.
- Lapisan Pengujian: Threadpool
- HENTIKAN ID: DIRTY_TRANSACTION_CONTEXT
- Hentikan kode: 0x707
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Status threadpool ini memiliki panggilan CoInit dan CoUnInit yang tidak seimbang.
kemungkinan penyebabPemberhentian ini dihasilkan jika fungsi panggilan balik memanggil CoInit dan CoUnInit tidak seimbang.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Fungsi panggilan balik.
- Parameter 2 - Konteks.
- Parameter 3 - Pelacakan tumpukan alokasi Objek Threadpool, gunakan dps untuk mencadangkannya.
- Parameter 4 - Jumlah Panggilan Seimbang.
- Lapisan Pengujian: Threadpool
- HENTIKAN ID: DIRTY_COM_STATE
- Hentikan kode: 0x708
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Parameter untuk objek timer tidak konsisten. Periode harus 0 ketika WT_EXECUTEONLYONCE ditentukan saat membuat timer
kemungkinan penyebabPemberhentian ini dihasilkan jika periode untuk memberi sinyal timer bukan nol ketika timer diatur ke sinyal hanya sekali dengan bendera WT_EXECUTEONLYONCE
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Periode ditentukan.
- Parameter 2 - Bendera ditentukan.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Threadpool
- HENTIKAN ID: INCONSISTENT_TIMER_PARAMS
- Hentikan kode: 0x709
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Kunci loader telah dipegang oleh utas threadpool dalam panggilan balik.
kemungkinan penyebabPemberhentian ini dihasilkan jika kunci pemuat ditahan dalam panggilan balik dan tidak dilepaskan saat utas dikembalikan ke threadpool.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Fungsi panggilan balik.
- Parameter 2 - Konteks.
- Parameter 3 - Pelacakan tumpukan alokasi Objek Threadpool, gunakan dps untuk mencadangkannya.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Threadpool
- HENTIKAN ID: LOADER_LOCK_HELD
- Hentikan kode: 0x7A
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Bahasa pilihan diatur oleh utas threadpool dalam panggilan balik.
kemungkinan penyebabPemberhentian ini dihasilkan jika bahasa pilihan diatur dalam panggilan balik dan tidak dibersihkan saat utas dikembalikan ke threadpool.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Fungsi panggilan balik.
- Parameter 2 - Konteks.
- Parameter 3 - Pelacakan tumpukan alokasi Objek Threadpool, gunakan dps untuk mencadangkannya.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Threadpool
- HENTIKAN ID: PREFERRED_LANGUAGES_SET
- Hentikan kode: 0x7B
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Prioritas latar belakang diatur oleh utas threadpool dalam panggilan balik.
kemungkinan penyebabPemberhentian ini dihasilkan jika prioritas latar belakang diatur dalam panggilan balik dan tidak dinonaktifkan saat utas dikembalikan ke threadpool.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Fungsi panggilan balik.
- Parameter 2 - Konteks.
- Parameter 3 - Pelacakan tumpukan alokasi Objek Threadpool, gunakan dps untuk mencadangkannya.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Threadpool
- HENTIKAN ID: BACKGROUND_PRIORITY_SET
- Hentikan kode: 0x7C
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
TerminateThread() pada utas threadpool.
kemungkinan penyebabPemberhentian ini dihasilkan jika TerminateThread dipanggil pada utas threadpool. Ini dilarang karena akan membuat sistem tidak stabil. Ini akan menyebabkan kebocoran sumber daya, pembekuan, atau AV.
Informasi ditampilkan oleh Pemverifikasi Aplikasi- Parameter 1 - Tidak digunakan.
- Parameter 2 - Tidak digunakan.
- Parameter 3 - Tidak digunakan.
- Parameter 4 - Tidak digunakan.
- Lapisan Pengujian: Threadpool
- HENTIKAN ID: ILLEGAL_THREAD_TERMINATION
- Hentikan kode: 0x7D
- Tingkat Keparahan: Kesalahan
- Kesalahan satu kali:
- laporan Kesalahan : Berhenti
- Masuk ke file: ya
- Buat backtrace: ya
Lihat Juga
Pemverifikasi Aplikasi - Hentikan Kode dan Definisi
Pemverifikasi Aplikasi - Gambaran Umum
Pemverifikasi Aplikasi - Fitur
Pemverifikasi Aplikasi - Aplikasi Pengujian
Pemverifikasi Aplikasi - Pengujian dalam Pemverifikasi Aplikasi
Pemverifikasi Aplikasi - Pemverifikasi Aplikasi Penelusuran Kesalahan Berhenti
Pemverifikasi Aplikasi - Tanya Jawab Umum