Bagikan melalui


Pemuatan Simbol Yang Ditangguhkan

Secara default, informasi simbol tidak benar-benar dimuat ketika modul target dimuat. Sebagai gantinya, simbol dimuat oleh debugger karena diperlukan. Ini disebut pemuatan simbol yang ditangguhkan atau pemuatan simbol malas. Ketika opsi ini diaktifkan, debugger memuat simbol setiap kali menemukan simbol yang tidak dikenali.

Ketika jalur simbol diubah, misalnya dengan menggunakan perintah .sympath (Atur Jalur Simbol), semua modul yang dimuat dengan simbol ekspor dimuat ulang dengan malas. Simbol modul dengan simbol PDB penuh akan dimuat ulang dengan malas jika jalur baru tidak lagi menyertakan jalur asli yang digunakan untuk memuat simbol PDB. Jika jalur baru masih menyertakan jalur asli ke file simbol PDB, simbol tersebut tidak akan dimuat ulang dengan malas.

Ketika pemuatan simbol yang ditangguhkan dinonaktifkan, startup proses bisa jauh lebih lambat, karena semua simbol dibaca setiap kali modul dimuat.

Di WinDbg, perilaku pemuatan simbol yang ditangguhkan dapat dimodifikasi untuk simbol yang tidak memiliki awalan modul dengan menggunakan opsi Atasi Simbol Tidak Memenuhi Syarat pada menu Debug .

Anda dapat mengganti pemuatan simbol yang ditangguhkan dengan menggunakan perintah ld (Load Symbols) atau perintah .reload (Reload Module) dengan opsi /f. Ini memaksa simbol yang ditentukan untuk segera dimuat, meskipun pemuatan simbol lain ditangguhkan.

Secara default, pemuatan simbol yang ditangguhkan diaktifkan. Di CDB dan KD, opsi baris perintah -s akan menonaktifkan opsi ini. Ini juga dapat dimatikan di CDB dengan menggunakan variabel LazyLoad dalam file tools.ini . Setelah debugger berjalan, opsi ini dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x4 atau .symopt-0x4.