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.
VCAsan*.lib
Pustaka menerapkan fitur IDE debugger yang diperluas di Visual Studio. Fitur-fitur ini memungkinkan IDE untuk menampilkan kesalahan AddressSanitizer dalam sesi debug langsung, atau offline dengan menyimpan file crash dump dengan metadata. Pustaka ditautkan kapan saja AddressSanitizer diaktifkan oleh pengkompilasi MSVC.
Inventaris pustaka VCAsan
Opsi runtime | Pustaka tautan VCAsan |
---|---|
/MT |
libvcasan.lib |
/MD |
vcasan.lib |
/MTd |
libvcasand.lib |
/MDd |
vcasand.lib |
Fitur pustaka VCAsan
Jendela laporan kesalahan Rich AddressSanitizer di Visual Studio IDE
Pustaka VCAsan mendaftarkan panggilan balik dalam runtime AddressSanitizer dengan menggunakan fungsi __asan_set_error_report_callback
antarmuka . Jika laporan AddressSanitizer dibuat, panggilan balik ini akan digunakan untuk melemparkan pengecualian yang tertangkap oleh Visual Studio. Visual Studio menggunakan data pengecualian untuk menghasilkan pesan yang ditampilkan kepada pengguna di IDE.
Catatan
Pustaka VCAsan mendaftarkan fungsi panggilan balik dalam runtime AddressSanitizer. Jika kode Anda memanggil fungsi pendaftaran ini untuk kedua kalinya, kode tersebut menimpa pendaftaran panggilan balik pustaka VCAsan. Ini mengalihkan hilangnya semua integrasi Visual Studio IDE. Anda akan kembali ke pengalaman pengguna IDE default. Ada kemungkinan juga panggilan pengguna yang mendaftarkan panggilan balik mereka hilang. Jika Anda mengalami masalah, ajukan bug.
Simpan kesalahan AddressSanitizer dalam jenis file crash dump baru
Saat Anda menautkan pustaka VCAsan ke executable Anda, pengguna dapat mengaktifkannya untuk menghasilkan crash dump saat runtime. Kemudian runtime AddressSanitizer menghasilkan file cadangan ketika kesalahan yang didiagnosis terjadi. Untuk mengaktifkan fitur ini, pengguna mengatur ASAN_SAVE_DUMPS
variabel lingkungan dengan menggunakan perintah seperti ini:
set ASAN_SAVE_DUMPS=MyFileName.dmp
File harus memiliki .dmp
ekstensi untuk mengikuti konvensi Visual Studio IDE. (Sebelum 17.7)
Inilah yang terjadi ketika file cadangan ditentukan untuk ASAN_SAVE_DUMPS
: Jika kesalahan tertangkap oleh runtime AddressSanitizer, file crash dump disimpan yang memiliki metadata yang terkait dengan kesalahan. Debugger di Visual Studio versi 16.9 dan yang lebih baru dapat mengurai metadata yang disimpan dalam file cadangan. Anda dapat mengatur ASAN_SAVE_DUMPS
berdasarkan per pengujian, menyimpan artefak biner ini, lalu melihatnya di IDE dengan pengindeksan sumber yang tepat.
Visual Studio versi 17.7 dan yang lebih baru mendukung hal berikut:
String yang dikutip sekarang ditangani dengan benar. Di versi sebelumnya, untuk lingkungan di dalam Visual Studio atau saat menggunakan PowerShell, mengatur variabel lingkungan untuk berisi tanda kutip atau spasi akan gagal membuat file cadangan yang diharapkan.
.dmp
Ketika ekstensi ditentukan secara eksplisit (misalnya,set ASAN_SAVE_DUMPS=MyDmp.dmp
), VCAsan menggunakannya secara eksplisit, dan tidak akan menambahkan ID proses terkait ke nama file cadangan..dmp
Jika file sudah ada dengan nama yang sama yang ditentukan dari variabel lingkungan, VCAsan memodifikasi nama file sebagai berikut:- Menambahkan angka ke nama file dalam tanda kurung. Contohnya,
Myfile (1).dmp
. - Jika setelah beberapa upaya menambahkan angka dalam tanda kurung gagal menghasilkan nama unik, file disimpan ke
%APPLOCAL%
jalur sementara yang akan dicetak VCAsan. Contohnya,C:\Users\~\AppData\Local\Temp\Dump.dmp
. - Jika penyimpanan ke jalur sementara gagal, kesalahan diagnostik akan ditampilkan.
- Menambahkan angka ke nama file dalam tanda kurung. Contohnya,
Lihat juga
Gambaran umum AddressSanitizer
Masalah yang diketahui AddressSanitizer
Referensi bahasa dan build AddressSanitizer
Referensi runtime AddressSanitizer
Byte bayangan AddressSanitizer
AddressSanitizer cloud atau pengujian terdistribusi
Contoh kesalahan AddressSanitizer