Opsi Simbol
Sejumlah opsi tersedia untuk mengontrol bagaimana simbol dimuat dan digunakan. Opsi ini dapat diatur dalam berbagai cara.
Tabel berikut mencantumkan opsi simbol ini:
Bendera | Nama Opsi | Default dalam debugger | Default dalam DBH |
---|---|---|---|
0x1 |
Aktif |
Aktif |
|
0x2 |
Aktif |
Aktif |
|
0x4 |
Aktif |
Nonaktif |
|
0x8 |
Nonaktif |
Nonaktif |
|
0x10 |
Nonaktif di KD dan CDB Aktif di WinDbg |
Aktif |
|
0x20 |
Aktif |
Nonaktif |
|
0x40 |
Nonaktif |
Nonaktif |
|
0x80 |
Nonaktif |
Nonaktif |
|
0x100 |
Nonaktif |
Nonaktif |
|
0x200 |
Aktif |
Nonaktif |
|
0x400 |
Nonaktif |
Aktif |
|
0x800 |
Nonaktif |
Aktif |
|
0x1000 |
Nonaktif |
Nonaktif |
|
0x2000 |
SYMOPT_INCLUDE_32BIT_MODULES |
Nonaktif |
Nonaktif |
0x4000 |
Nonaktif |
Nonaktif |
|
0x8000 |
Nonaktif |
Nonaktif |
|
0x10000 |
Aktif |
Aktif |
|
0x20000 |
Aktif |
Nonaktif |
|
0x40000 |
Nonaktif |
Nonaktif |
|
0x80000 |
Aktif di KD dan CDB Nonaktif di WinDbg |
Nonaktif |
|
0x80000000 |
Nonaktif |
Nonaktif |
Mengubah Pengaturan Opsi Simbol
Perintah .symopt (Atur Opsi Simbol) dapat digunakan untuk mengubah atau menampilkan pengaturan opsi simbol. Selain itu, sejumlah parameter dan perintah baris perintah tersedia untuk mengubah pengaturan ini; ini tercantum di bagian SYMOPT_XXXX individu.
Anda juga dapat mengontrol semua pengaturan sekaligus dengan opsi baris perintah-sflags. Opsi ini dapat diikuti dengan angka desimal, atau dengan angka heksadesimal yang diawali dengan 0x. Disarankan agar Anda menggunakan heksadesimal, karena bendera simbol diselaraskan dengan benar seperti itu. Berhati-hatilah dalam menggunakan metode ini, karena mengatur seluruh bitfield dan akan mengambil alih semua default handler simbol. Misalnya, -sflags 0x401 tidak hanya akan mengaktifkan SYMOPT_EXACT_SYMBOLS dan SYMOPT_CASE_INSENSITIVE, tetapi juga akan menonaktifkan semua opsi lain yang biasanya aktif secara default!
Nilai default untuk total bit bendera 0x30237 di WinDbg, 0xB0227 di CDB dan KD, dan 0x10C13 di alat DBH, ketika program ini diluncurkan tanpa opsi baris perintah terkait simbol.
SYMOPT_CASE_INSENSITIVE
Opsi simbol ini menyebabkan semua pencarian nama simbol tidak peka huruf besar/kecil.
Opsi ini aktif secara default di semua debugger. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x1 atau .symopt-0x1.
Opsi ini aktif secara default di DBH. Setelah DBH berjalan, DBH dapat diaktifkan atau dimatikan dengan menggunakan symopt +1 atau symopt -1, masing-masing.
SYMOPT_UNDNAME
Opsi simbol ini menyebabkan nama simbol publik tidak terdekorasi saat ditampilkan, dan menyebabkan pencarian nama simbol mengabaikan dekorasi simbol. Nama simbol privat tidak pernah dihiasi, terlepas dari apakah opsi ini aktif. Untuk informasi tentang dekorasi nama simbol, lihat Simbol Publik dan Privat.
Opsi ini aktif secara default di semua debugger. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x2 atau .symopt-0x2.
Opsi ini aktif secara default di DBH. Ini dimatikan jika opsi baris perintah -d digunakan. Setelah DBH berjalan, DBH dapat diaktifkan atau dimatikan dengan menggunakan symopt +2 atau symopt -2, masing-masing.
SYMOPT_DEFERRED_LOADS
Opsi simbol ini disebut pemuatan simbol yang ditangguhkan atau pemuatan simbol malas. Ketika aktif, simbol tidak benar-benar dimuat ketika modul target dimuat. Sebagai gantinya, simbol dimuat oleh debugger sesuai kebutuhan. Lihat Pemuatan Simbol Yang Ditangguhkan untuk detailnya.
Opsi ini aktif secara default di semua debugger. 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.
Opsi ini nonaktif secara default di DBH. Setelah DBH berjalan, DBH dapat dinyalakan atau dimatikan dengan menggunakan symopt +4 atau symopt -4.
SYMOPT_NO_CPP
Opsi simbol ini menonaktifkan terjemahan C++. Ketika opsi simbol ini diatur, :: digantikan oleh __ di semua simbol.
Opsi ini nonaktif secara default di semua debugger. Ini dapat diaktifkan dengan menggunakan opsi baris perintah -snc. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x8 atau .symopt-0x8.
Opsi ini nonaktif secara default di DBH. Setelah DBH berjalan, DBH dapat diaktifkan atau dimatikan dengan menggunakan symopt +8 atau symopt -8, masing-masing.
SYMOPT_LOAD_LINES
Opsi simbol ini memungkinkan informasi nomor baris dibaca dari file sumber. Opsi ini harus aktif agar penelusuran kesalahan sumber berfungsi dengan benar.
Di KD dan CDB, opsi ini nonaktif secara default; di WinDbg, opsi ini aktif secara default. Di CDB dan KD, opsi baris perintah -lines akan mengaktifkan opsi ini. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x10 atau .symopt-0x10. Ini juga dapat diaktifkan dan dinonaktifkan dengan menggunakan perintah .lines (Toggle Source Line Support).
Opsi ini aktif secara default di DBH. Setelah DBH berjalan, DBH dapat dihidupkan atau dimatikan dengan menggunakan symopt +10 atau symopt -10.
SYMOPT_OMAP_FIND_NEAREST
Ketika kode telah dioptimalkan dan tidak ada simbol di lokasi yang diharapkan, opsi ini menyebabkan simbol terdekat digunakan sebagai gantinya.
Opsi ini aktif secara default di semua debugger. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x20 atau .symopt-0x20.
Opsi ini aktif secara default di DBH. Setelah DBH berjalan, DBH dapat dinyalakan atau dimatikan dengan menggunakan symopt +20 atau symopt -20.
SYMOPT_LOAD_ANYTHING
Opsi simbol ini mengurangi pemilihan penangan simbol saat mencoba mencocokkan simbol.
Opsi ini nonaktif secara default di semua debugger. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x40 atau .symopt-0x40.
Opsi ini nonaktif secara default di DBH. Setelah DBH berjalan, DBH dapat diaktifkan atau dimatikan dengan menggunakan symopt +40 atau symopt -40, masing-masing.
SYMOPT_IGNORE_CVREC
Opsi simbol ini menyebabkan penangan simbol mengabaikan rekaman CV di header gambar yang dimuat saat mencari simbol.
Opsi ini nonaktif secara default di semua debugger. Ini dapat diaktifkan dengan menggunakan opsi baris perintah -sicv. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x80 atau .symopt-0x80.
Opsi ini nonaktif secara default di DBH. Setelah DBH berjalan, DBH dapat dinyalakan atau dimatikan dengan menggunakan symopt +80 atau symopt -80.
SYMOPT_NO_UNQUALIFIED_LOADS
Opsi simbol ini menonaktifkan pemuatan modul otomatis penangan simbol. Ketika opsi ini diatur dan debugger mencoba mencocokkan simbol, opsi ini hanya akan mencari modul yang telah dimuat.
Opsi ini dapat digunakan sebagai pertahanan terhadap salah ketik nama simbol. Biasanya, simbol yang salah ketik akan menyebabkan debugger dijeda saat mencari semua file simbol yang dibongkar. Ketika opsi ini aktif, simbol yang salah ketik tidak akan ditemukan dalam modul yang dimuat, dan kemudian pencarian akan dihentikan.
Opsi ini nonaktif secara default di semua debugger. Ini dapat diaktifkan dengan menggunakan opsi baris perintah -snul. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x100 atau .symopt-0x100.
Opsi ini nonaktif secara default di DBH. Setelah DBH berjalan, DBH dapat dinyalakan atau dimatikan dengan menggunakan symopt +100 atau symopt -100, masing-masing.
SYMOPT_FAIL_CRITICAL_ERRORS
Opsi simbol ini menyebabkan kotak dialog kesalahan akses file ditekan.
Jika opsi ini nonaktif, kesalahan akses file, seperti "drive tidak siap", yang ditemui selama pemuatan simbol, akan mengakibatkan kotak dialog muncul. Jika opsi ini aktif, kotak-kotak ini ditekan dan semua kesalahan akses menerima respons "gagal".
Opsi ini aktif secara default di semua debugger. Ini dapat dinonaktifkan dengan menggunakan opsi baris perintah -sdce. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x200 atau .symopt-0x200.
Opsi ini nonaktif secara default di DBH. Setelah DBH berjalan, DBH dapat dinyalakan atau dinonaktifkan dengan menggunakan symopt +200 atau symopt -200, masing-masing.
SYMOPT_EXACT_SYMBOLS
Opsi simbol ini menyebabkan debugger melakukan evaluasi ketat dari semua file simbol.
Ketika opsi ini aktif, bahkan perbedaan sekecil apa pun antara file simbol dan harapan penangan simbol akan menyebabkan simbol diabaikan.
Opsi ini nonaktif secara default di semua debugger. Ini dapat diaktifkan dengan menggunakan opsi baris perintah -ses. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x400 atau .symopt-0x400.
Opsi baris perintah -failinc juga menyalakan SYMOPT_EXACT_SYMBOLS. Selain itu, jika Anda men-debug minidump mode pengguna atau minidump mode kernel, -failinc akan mencegah debugger memuat modul apa pun yang gambarnya tidak dapat dipetakan.
Opsi ini aktif secara default di DBH. Setelah DBH berjalan, DBH dapat diaktifkan atau dinonaktifkan dengan menggunakan symopt +400 atau symopt -400, masing-masing.
SYMOPT_ALLOW_ABSOLUTE_SYMBOLS
Opsi simbol ini memungkinkan DbgHelp membaca simbol yang disimpan pada alamat absolut dalam memori. Opsi ini tidak diperlukan dalam sebagian besar kasus.
Opsi ini nonaktif secara default di semua debugger. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x800 atau .symopt-0x800.
Opsi ini aktif secara default di DBH. Setelah DBH berjalan, DBH dapat diaktifkan atau dinonaktifkan dengan menggunakan symopt +800 atau symopt -800, masing-masing.
SYMOPT_IGNORE_NT_SYMPATH
Opsi simbol ini menyebabkan debugger mengabaikan pengaturan variabel lingkungan untuk jalur simbol dan jalur gambar yang dapat dieksekusi.
Opsi ini nonaktif secara default di semua debugger. Ini dapat diaktifkan dengan menggunakan opsi baris perintah -sins. Namun, ini tidak dapat dikontrol oleh .symopt setelah debugger berjalan, karena variabel lingkungan hanya dibaca saat startup.
Opsi ini nonaktif secara default di DBH, dan diabaikan oleh DBH dalam semua kasus.
SYMOPT_PUBLICS_ONLY
Opsi simbol ini menyebabkan DbgHelp mengabaikan data simbol privat, dan hanya mencari tabel simbol publik untuk informasi simbol. Ini meniru perilaku DbgHelp sebelum dukungan untuk jenis ini ditambahkan. lihat Simbol Publik dan Privat.
Opsi ini nonaktif secara default di semua debugger. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x4000 atau .symopt-0x4000.
Opsi ini nonaktif secara default di DBH. Ini diaktifkan jika opsi baris perintah -d digunakan. Setelah DBH berjalan, DBH dapat diaktifkan atau dinonaktifkan dengan menggunakan symopt +4000 atau symopt -4000, masing-masing.
SYMOPT_NO_PUBLICS
Opsi simbol ini mencegah DbgHelp mencari tabel simbol publik. Ini dapat membuat enumerasi simbol dan pencarian simbol jauh lebih cepat. Jika Anda hanya khawatir dengan kecepatan pencarian, opsi SYMOPT_AUTO_PUBLICS umumnya lebih disukai daripada yang ini. Untuk informasi tentang tabel simbol publik, lihat Simbol Publik dan Privat.
Opsi ini nonaktif secara default di semua debugger. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x8000 atau .symopt-0x8000.
Opsi ini nonaktif secara default di DBH. Setelah DBH berjalan, DBH dapat diaktifkan atau dinonaktifkan dengan menggunakan symopt +8000 atau symopt -8000, masing-masing.
SYMOPT_AUTO_PUBLICS
Opsi simbol ini menyebabkan DbgHelp mencari tabel simbol publik dalam file .pdb hanya sebagai upaya terakhir. Jika ada kecocokan yang ditemukan saat mencari data simbol privat, simbol publik tidak akan dicari. Ini meningkatkan kecepatan pencarian simbol.
Opsi ini aktif secara default di semua debugger. Ini dapat dinonaktifkan dengan menggunakan opsi baris perintah -sup. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x10000 atau .symopt-0x10000.
Opsi ini aktif secara default di DBH. Ini dimatikan jika opsi baris perintah -d digunakan. Setelah DBH berjalan, DBH dapat diaktifkan atau dinonaktifkan dengan menggunakan symopt +10000 atau symopt -10000, masing-masing.
SYMOPT_NO_IMAGE_SEARCH
Opsi simbol ini mencegah DbgHelp mencari disk untuk salinan gambar saat simbol dimuat.
Opsi ini aktif secara default di semua debugger. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x20000 atau .symopt-0x20000.
Opsi ini nonaktif secara default di DBH. Setelah DBH berjalan, DBH dapat diaktifkan atau dinonaktifkan dengan menggunakan symopt +20000 atau symopt -20000, masing-masing.
SYMOPT_SECURE
(Mode kernel saja) Opsi simbol ini menunjukkan apakah Mode Aman aktif.
Mode Aman nonaktif secara default di semua debugger. Ini dapat diaktifkan dengan menggunakan opsi -secure command-line. Jika debugger berjalan, dalam mode tidak aktif, dan belum menetapkan Server Debugging apa pun, Mode Aman dapat diaktifkan dengan menggunakan .symopt+0x40000 atau .secure (Aktifkan Mode Aman).
Opsi ini nonaktif secara default di DBH. Setelah DBH berjalan, DBH dapat diaktifkan atau dinonaktifkan dengan menggunakan symopt +40000 atau symopt -40000, masing-masing.
Mode aman tidak pernah dapat dimatikan setelah diaktifkan.
SYMOPT_NO_PROMPTS
Opsi simbol ini menekan kotak dialog autentikasi dari server proksi. Hal ini dapat mengakibatkan SymSrv tidak dapat mengakses penyimpanan simbol di internet.
Untuk detailnya, lihat Firewall dan Server Proksi.
Di KD dan CDB, opsi ini aktif secara default; di WinDbg, opsi ini nonaktif secara default. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x80000 atau .symopt-0x80000, masing-masing, diikuti oleh perintah .reload (Reload Module). Ini juga dapat diaktifkan dan dinonaktifkan dengan menggunakan perintah !sym prompts off dan !sym prompts extension, diikuti dengan perintah .reload (Reload Module).
Opsi ini nonaktif secara default di DBH. Setelah DBH berjalan, DBH dapat diaktifkan atau dinonaktifkan dengan menggunakan symopt +80000 atau symopt -80000, masing-masing.
-SYMOPT_DEBUG
Opsi simbol ini mengaktifkan pemuatan simbol berisik. Ini menginstruksikan debugger untuk menampilkan informasi tentang pencarian simbolnya.
Nama setiap file simbol akan ditampilkan saat dimuat. Jika debugger tidak dapat memuat file simbol, itu akan menampilkan pesan kesalahan. Pesan kesalahan untuk file .pdb akan ditampilkan dalam teks. Pesan kesalahan untuk file .dbg akan dalam bentuk kode kesalahan; kode-kode ini dijelaskan dalam file winerror.h.
Jika file gambar dimuat hanya untuk memulihkan informasi header simbolis, ini juga akan ditampilkan.
Opsi ini nonaktif secara default di semua debugger. Ini dapat diaktifkan dengan menggunakan opsi baris perintah -n. Setelah debugger berjalan, debugger dapat diaktifkan atau dinonaktifkan dengan menggunakan .symopt+0x80000000 atau .symopt-0x80000000. Ini juga dapat diaktifkan dan dinonaktifkan dengan menggunakan perintah !sym noisy dan !sym quiet extension.
Catatan Opsi ini tidak boleh dikacaukan dengan pemuatan sumber yang bising -- yang dikontrol oleh perintah .srcnoisy (Pemuatan Sumber Berisik).
Opsi ini nonaktif secara default di DBH. Ini dapat diaktifkan dengan menggunakan opsi baris perintah -n. Setelah DBH berjalan, DBH dapat diaktifkan atau dinonaktifkan dengan menggunakan symopt +80000000 atau symopt -80000000, masing-masing. Ini juga dapat dihidupkan dan dinonaktifkan dengan menggunakan perintah verbose on dan verbose off.