Dukungan Simbol
Ketika Windows Penganalisis Kinerja (WPA) dikonfigurasi dengan benar, WPA menunjukkan nama simbolis dari file simbol untuk alamat yang ditemukan dalam rekaman.
Untuk mendekode simbol, alat harus menemukan file database program, yang dikenal sebagai file database program (PDB) atau file simbol, untuk membangun tumpukan panggilan lengkap. Pengkompilasi dan linker menghasilkan file PDB saat sistem membangun komponen. Microsoft menyediakan file database program untuk banyak produk Microsoft di server simbol online. Alat Penelusuran Kesalahan Microsoft untuk Windows dan WPA menggunakan server simbol online untuk mencari informasi simbol. Oleh karena itu, komputer harus tersambung ke Internet jika file simbol tidak disalin secara lokal. Windows Performance Toolkit menggunakan infrastruktur pendekodean simbol yang sama dengan debugger Windows, Windbg.exe. Untuk informasi selengkapnya, lihat WinDbg.
Untuk mengonfigurasi dukungan simbol, Anda harus menentukan variabel lingkungan _NT_SYMBOL_PATH . Contoh berikut mengatur jalur simbol untuk menggunakan server simbol publik Microsoft bersama dengan penyimpanan hilir di C:\symbols:
set _NT_SYMBOL_PATH= srv*C:\symbols*https://msdl.microsoft.com/downloads/symbols
Perhatikan bahwa contoh ini adalah satu baris perintah.
URL dalam jalur simbol ini menentukan server simbol Microsoft online. Jalur antara tanda bintang (C:\symbols) menentukan penyimpanan hilir. Ini adalah cache lokal di mana sistem resolusi simbol menyimpan file simbol. WPA Tools juga mendekode simbol dari komponen yang Anda kembangkan. Tambahkan satu atau beberapa jalur ke _NT_SYMBOL_PATH yang berisi file PDB untuk komponen yang ingin Anda rekam. Misalnya, contoh berikut menunjukkan bagaimana jalur disiapkan untuk contoh sebelumnya:
set _NT_SYMBOL_PATH=c:\coding\fs\release;srv*C:\symbols*
Ketika Xperf atau WPA mendekode simbol, Xperf atau WPA menyimpan versi ringkas dari file simbol asli, atau PDB, pada disk di direktori \symcache . Untuk melakukan ini, Xperf atau WPA menggunakan simbol yang tersedia pada saat itu. Simbol sistem operasi yang tersedia di luar Microsoft adalah simbol publik. Simbol-simbol ini berisi lebih sedikit informasi daripada simbol privat internal. Dalam pengujian kotak hitam, simbol publik juga dapat menyertakan informasi yang salah. Simbol privat, yang lebih dapat diandalkan, dapat diperoleh berdasarkan perjanjian non-pengungkapan. Jika pengguna telah mendekode rekaman dengan menggunakan simbol publik, dan pengguna kemudian mendapatkan simbol privat, pengguna harus menghapus direktori \symcache sebelum Xperf atau WPA dapat menemukan simbol privat baru.
Pemecahan Masalah Pendekodean Simbol
Dukungan pendekodean simbol rumit. Persyaratan berikut harus dipenuhi:
Anda harus menentukan
-symbols
pada baris perintah Xperf atau pilih Muat Simbol pada menu Pelacakan di WPA setelah Anda membuka rekaman.Variabel lingkungan harus dikonfigurasi dengan benar. Untuk informasi selengkapnya tentang Xperf, lihat simbol.
File rekaman kernel ETW harus dihentikan dan digabungkan dengan benar. Untuk informasi selengkapnya, lihat Menghentikan Rekaman.
Windows Performance Recorder (WPR) atau WPA menggabungkan file perekaman pengguna ETW bersama dengan file perekaman kernel yang diambil pada saat yang sama pada komputer yang sama.
Anda harus memiliki akses ke sumber biner dan simbol yang _NT_SYMBOL_PATH tentukan. Jika Anda menggunakan server simbol, server simbol sering kali hanya pengalih. Dalam hal ini, Anda harus memiliki akses ke server simbol dan situs yang dipandu server simbol ke biner dan simbol tersebut.
_NT_SYMBOL_PATH harus menunjuk ke file yang benar. Jika file ada dari build atau arsitektur yang berbeda, file tidak akan berfungsi. Jika versi file biner aplikasi bukan versi yang sama dengan simbol yang _NT_SYMBOL_PATH arahkan, Anda tidak dapat melihat tumpukan panggilan.
Untuk mengesampingkan ketidakcocokan simbol, gunakan Symchk.exe dari Alat Debugging untuk distribusi Windows untuk memastikan bahwa simbol cocok dengan file simbol di komputer tempat rekaman diambil. Contohnya:
symchk /v <local_file> /s <sympath_to_name.pdb>
Untuk mengesampingkan ketidakcocokan biner, gunakan
fc /b
perintah untuk memastikan bahwa biner di komputer tempat rekaman diambil cocok dengan biner pada berbagi drop. Contohnya:fc /b <local_file> <drop_share_file>
Di Xperf, Anda harus mengambil rekaman kernel ETW dengan menggunakan setidaknya
PROC_THREAD+LOADER
bendera . Bendera ini memberikan informasi dasar tentang masa pakai proses dan rentang alamat virtual gambar dalam memori proses. Informasi ini membantu XPerf mendekode alamat virtual ke gambar dan simbol.Untuk memverifikasi bahwa bendera ini telah diaktifkan dalam perekaman kernel ETW, periksa apakah peristiwa Xperf -process (Create, Delete, Start Rundown, End Rundown) dan Peristiwa gambar (Load, Unload, Start Rundown, End Rundown) ada dalam tabel yang dihasilkan dengan menggunakan perintah berikut:
xperf -i kernel.etl -a tracestats -detail
Catatan Semua peristiwa ini mungkin tidak tercantum dalam tabel, tergantung pada apakah peristiwa ini terjadi.
Batasan dalam Pendekodean Simbol Xperf
Xperf default ke drive sistem jika drive tidak ditentukan untuk gambar yang dapat dieksekusi (seperti \Path\Library.dll). Saat Anda menjalankan -d/-merge
perintah, jika Xperf tidak dapat menemukan gambar yang dapat dieksekusi yang ada dalam proses yang sedang berjalan selama perekaman, Xperf tidak dapat mengambil informasi identitas file gambar dan simbol yang sesuai dan menambahkan informasi ke rekaman gabungan. Tanpa informasi tersebut, Xperf tidak dapat melakukan pendekodean simbol untuk gambar tersebut dalam rekaman tersebut.
Masalah ini tidak memengaruhi jalur file lain, seperti jalur di I/O disk atau I/O file.
Untuk mengaktifkan pendekodean simbol dan membantu mengaktifkan jalur pemuatan dan pembongkaran gambar yang benar dalam rekaman Xperf ETW, Anda harus menyimpan semua gambar yang dapat dieksekusi yang mungkin memerlukan pendekodean simbol atau jalur pemuatan dan pembongkaran gambar pada drive sistem. Kemudian, jalankan gambar dari drive tersebut. Jika itu tidak memungkinkan, buat cermin gambar pada drive sistem, bahkan jika Anda menjalankan gambar dari drive lain. Misalnya, jika C: adalah drive sistem Anda, buat salinan D:\game\bin\binkw32.dll yang identik di C:\game\bin\binkw32.dll.