Penelusuran kesalahan dengan Simbol
Artikel ini memberikan gambaran umum tingkat tinggi tentang cara terbaik menggunakan simbol dalam proses penelusuran kesalahan Anda. Ini menjelaskan cara menggunakan server simbol Microsoft, dan juga cara menyiapkan dan menggunakan server simbol privat Anda sendiri. Praktik terbaik ini dapat membantu meningkatkan efektivitas dan kemampuan Anda untuk men-debug masalah, bahkan dalam kasus di mana semua simbol dan file yang dapat dieksekusi yang terkait dengan masalah tidak terletak di komputer Anda.
- Simbol
- Menggunakan Simbol untuk Penelusuran Kesalahan
- Mendapatkan Simbol yang Anda Butuhkan
- Server Simbol
- Menggunakan Microsoft Symbol Server
- Mendapatkan Simbol Secara Manual
- Menyiapkan Server Simbol
- Menambahkan Simbol ke Server Simbol
- Praktik Terbaik
Simbol
Sejumlah jenis simbol yang berbeda tersedia untuk penelusuran kesalahan. Mereka termasuk simbol CodeView, COFF, DBG, SYM, PDB, dan bahkan ekspor simbol yang dihasilkan dari tabel ekspor file biner. Laporan resmi ini hanya membahas VS.NET dan simbol format PDB, karena merupakan format terbaru yang disukai. Mereka dihasilkan secara default untuk proyek yang dikompilasi dengan menggunakan Visual Studio.
Menghasilkan file PDB untuk executable rilis tidak memengaruhi pengoptimalan apa pun, atau secara signifikan mengubah ukuran file yang dihasilkan. Biasanya, satu-satunya perbedaan adalah jalur, dan nama file file PDB disematkan dalam file yang dapat dieksekusi. Untuk alasan ini, Anda harus selalu menghasilkan file PDB, bahkan jika Anda tidak ingin mengirimkannya dengan executable.
File PDB dihasilkan jika proyek dibangun dengan menggunakan sakelar kompilator /Zi atau /ZI (Hasilkan Informasi PDB), bersama dengan sakelar penghubung /DEBUG (Hasilkan Info Debug). File PDB yang dihasilkan kompilator digabungkan dan ditulis ke dalam satu file PDB yang ditempatkan di direktori yang sama dengan yang dapat dieksekusi.
Secara default, file PDB berisi informasi berikut:
- Simbol publik (biasanya semua fungsi, variabel statis dan global)
- Daftar file objek yang bertanggung jawab atas bagian kode dalam executable
- Informasi pengoptimalan pointer bingkai (FPO)
- Informasi nama dan jenis untuk variabel lokal dan struktur data
- Informasi file sumber dan nomor baris
Jika Anda khawatir tentang orang yang menggunakan informasi file PDB untuk membantu mereka merekayasa balik file yang dapat dieksekusi, Anda juga dapat membuat file PDB yang dilucuti, dengan menggunakan opsi linker /PDBSTRIPPED:filename . Jika Anda memiliki file PDB yang ingin Anda hapus informasi privatnya, Anda dapat menggunakan alat yang disebut pdbcopy, yang merupakan bagian dari alat penelusuran kesalahan untuk Windows.
Secara default, file PDB yang dilucuti berisi informasi berikut:
- Simbol publik (biasanya hanya fungsi non-statis dan variabel global)
- Daftar file objek yang bertanggung jawab atas bagian kode dalam executable
- Informasi pengoptimalan pointer bingkai (FPO)
Ini adalah informasi minimum yang diperlukan untuk memungkinkan penelusuran kesalahan yang andal. Informasi minimum juga menyulitkan untuk mendapatkan informasi tambahan tentang kode sumber asli Anda. Karena file PDB yang dilucuti dan file PDB reguler dihasilkan, Anda dapat memberikan versi yang dilucuti kepada pengguna yang mungkin memerlukan kemampuan penelusuran kesalahan terbatas, tetapi menjaga PDB lengkap tetap rahasia. Perhatikan bahwa /PDBSTRIPPED menghasilkan file PDB kedua yang lebih kecil, jadi pastikan Anda menggunakan file PDB yang benar saat Membuat build untuk didistribusikan secara luas. Untuk proyek umum, PDB biasa mungkin berukuran beberapa megabyte, tetapi versi PDB yang dilucuti mungkin hanya beberapa ratus kilobyte.
Menggunakan Simbol untuk Penelusuran Kesalahan
Saat Anda men-debug aplikasi yang mengalami crash, debugger mencoba menunjukkan fungsi pada tumpukan yang menyebabkan crash. Tanpa file PDB, debugger tidak dapat menyelesaikan nama fungsi, parameternya, atau variabel lokal apa pun yang disimpan di tumpukan. Jika Anda men-debug executable 32-bit, ada situasi di mana Anda bahkan tidak bisa mendapatkan jejak tumpukan yang andal tanpa simbol. Terkadang dimungkinkan untuk melihat nilai mentah pada tumpukan, dan mencari tahu nilai mana yang mungkin merupakan alamat pengembalian, tetapi ini dapat dengan mudah dikacaukan dengan referensi fungsi atau data.
Jika fungsi pada tumpukan saat ini dikompilasi dengan menggunakan pengoptimalan Omit Frame Pointers (/Oy), dan jika simbol tidak ada, debugger tidak dapat dengan andal menentukan fungsi mana yang disebut fungsi saat ini. Ini karena tanpa informasi Pengoptimalan Penunjuk Bingkai (FPO) yang dimuat PDB, debugger tidak dapat mengandalkan register penunjuk bingkai (EBP) untuk menunjuk ke penunjuk bingkai sebelumnya yang disimpan dan pada alamat pengembalian fungsi induk. Sebaliknya, itu menebak. Kadang-kadang itu benar. Namun, sering kali salah, yang bisa menyesatkan. Jika Anda melihat peringatan tentang simbol yang hilang, atau tidak ada simbol yang dimuat, seperti dalam contoh berikut, jangan percayai tumpukan dari titik ke bawah.
SWPerfTest.exe!TextFunction(... ...) Line 59 C++
d3dx9d.dll!008829b5()
[Frames below may be incorrect and/or missing, no symbols loaded for d3dx9d.dll]
SWPerfTest.exe!main(int argc=, const char * * argv=) Line 328 + 0x12 bytes C++
SWPerfTest.exe!__mainCRTStartup() Line 716 + 0x17 bytes C
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes
ntdll.dll!__RtlUserThreadStart@8() + 0x27 bytes
Dalam banyak kasus, dimungkinkan untuk melanjutkan penelusuran kesalahan tanpa simbol, karena masalahnya ada di lokasi yang memiliki simbol yang akurat, dan Anda tidak perlu melihat fungsi lebih jauh ke bawah tumpukan panggilan. Bahkan jika pustaka yang ada di tumpukan panggilan Anda tidak memiliki PDB yang tersedia, selama dikompilasi dengan penunjuk bingkai, debugger harus dapat menebak dengan benar di fungsi induk. Dimulai dengan Windows XP Service Pack 2, semua FILE Windows DLL dan file yang dapat dieksekusi dikompilasi dengan FPO dinonaktifkan, karena membuat penelusuran kesalahan lebih akurat. Menonaktifkan FPO juga memungkinkan pengambilan sampel profiler untuk berjalan di tumpukan selama run-time, dengan dampak performa minimal. Pada versi Windows sebelum Windows XP SP2, semua biner sistem operasi memerlukan file simbol yang cocok yang berisi informasi FPO, untuk memungkinkan penelusuran kesalahan dan pembuatan profil yang akurat.
Jika Anda men-debug executable asli 64-bit, Anda tidak memerlukan file simbol untuk menghasilkan jejak tumpukan yang valid, karena sistem operasi x64 dan kompilator dirancang untuk tidak memerlukannya. Namun, Anda masih memerlukan file simbol untuk mengambil nama fungsi, parameter panggilan, dan variabel lokal.
Namun, beberapa kasus sangat sulit untuk di-debug tanpa simbol. Misalnya, jika Anda men-debug program tempat Anda membuat file PDB, dan jika Anda mengalami crash dalam panggilan balik dari fungsi di DLL yang tidak Anda miliki simbolnya, Anda tidak akan dapat melihat fungsi mana yang menyebabkan panggilan balik, karena Anda tidak akan dapat mendekode tumpukan. Ini sering terjadi di pustaka pihak ketiga, jika PDB tidak disediakan, atau di komponen sistem operasi lama, jika PDB tidak tersedia. Panggilan balik sering terjadi selama pengiriman pesan, enumerasi, alokasi memori, atau penanganan pengecualian. Men-debug fungsi-fungsi ini tanpa tumpukan yang akurat dapat membuat frustrasi.
Untuk men-debug cadangan mini yang dihasilkan di komputer yang berbeda, atau yang mengalami crash dalam kode yang tidak Anda miliki, penting untuk dapat mengakses semua simbol dan biner untuk executable yang direferensikan dalam mini-dump. Jika simbol dan biner tersedia dari server simbol, simbol tersebut secara otomatis diperoleh oleh debugger. Untuk informasi selengkapnya tentang cadangan mini, lihat laporan resmi Analisis Crash Dump.
Mendapatkan Simbol yang Anda Butuhkan
Visual Studio dan debugger Microsoft lainnya, seperti WinDbg, biasanya disiapkan untuk hanya berfungsi jika Anda membangun aplikasi dan men-debugnya di komputer Anda sendiri. Jika Anda perlu memberikan executable kepada orang lain, jika Anda memiliki beberapa versi DLL atau file .exe di komputer Anda, atau jika Anda ingin secara akurat men-debug aplikasi yang menggunakan Windows atau pustaka lain, seperti DirectX, Anda perlu memahami bagaimana debugger menemukan dan memuat simbol. Debugger menggunakan jalur pencarian simbol yang ditentukan oleh pengguna—yang ditemukan di Options\Debugging\Symbols di Visual Studio—atau variabel lingkungan _NT_SYMBOL_PATH. Biasanya, debugger mencari PDB yang cocok di lokasi berikut:
Lokasi yang ditentukan di dalam DLL atau file yang dapat dieksekusi.
Jika Anda telah membuat DLL atau file yang dapat dieksekusi di komputer Anda, secara default linker menempatkan jalur lengkap dan nama file file PDB terkait di dalam DLL atau file yang dapat dieksekusi. Saat Anda men-debug, debugger pertama-tama memeriksa untuk melihat apakah file simbol ada di lokasi yang ditentukan di dalam DLL atau file yang dapat dieksekusi. Ini berguna, karena Anda selalu memiliki simbol yang tersedia untuk kode yang telah Anda kompilasi di komputer Anda.
PDB yang mungkin ada di folder yang sama dengan DLL atau file yang dapat dieksekusi.
Setiap folder cache simbol lokal.
Server simbol berbagi file jaringan lokal apa pun.
Server simbol Internet apa pun, seperti server simbol Microsoft.
Untuk memastikan bahwa Anda memiliki semua PDB yang Anda butuhkan untuk penelusuran kesalahan yang akurat, instal alat penelusuran kesalahan untuk Windows. Versi 32 dan 64 bit dapat ditemukan di Alat Debugging untuk Windows.
Alat berguna yang diinstal dengan paket ini adalah symchk.exe. Ini dapat membantu mengidentifikasi simbol yang hilang atau salah. Alat ini memiliki sejumlah besar opsi baris perintah potensial. Berikut adalah dua yang lebih berguna dan umum digunakan.
Periksa apakah file DLL atau .exe dan PDB tertentu di folder yang sama cocok
"c:\Program Files\Debugging Tools for Windows\symchk" testing.dll /s .
SYMCHK: FAILED files = 0
SYMCHK: PASSED + IGNORED files = 1
Opsi .s memberi tahu symchk untuk mencari simbol hanya di folder saat ini, dan tidak melihat di server simbol apa pun.
Periksa apakah semua DLL dan file yang dapat dieksekusi dalam sekumpulan folder memiliki PDB yang cocok
"c:\Program Files\Debugging Tools for Windows\symchk" *.* /r
Opsi /r mengatur symchk untuk melintasi folder secara rekursif, untuk memeriksa apakah semua file yang dapat dieksekusi memiliki PDB yang cocok. Tanpa opsi /s, symchk menggunakan _NT_SYMBOL_PATH saat ini untuk mencari simbol di server privat atau lokal apa pun, atau di server simbol Microsoft. Alat symchk hanya mencari simbol untuk file yang dapat dieksekusi (.exe, .dll, dan sejenisnya). Anda tidak dapat menggunakan kartubebas untuk mencari simbol untuk file yang tidak dapat dieksekusi.
Cara Kerja symchk
Ketika linker menghasilkan file .dll, executable, dan PDB, linker menyimpan GUID yang identik di setiap file. GUID digunakan oleh alat untuk menentukan apakah file PDB tertentu cocok dengan DLL atau file yang dapat dieksekusi. Jika Anda mengubah DLL atau file yang dapat dieksekusi—dengan menggunakan editor sumber daya atau pengodean perlindungan salin, atau dengan mengubah informasi versinya—GUID diperbarui dan debugger tidak dapat memuat file PDB. Untuk alasan ini, sangat penting untuk menghindari manipulasi DLL atau file yang dapat dieksekusi setelah dibuat oleh linker.
Anda juga dapat menggunakan utilitas DUMPBIN yang dilengkapi dengan VS.NET untuk menampilkan jalur simbol yang dicari, dan untuk melihat apakah file simbol ditemukan yang cocok dengan DLL atau file yang dapat dieksekusi tertentu. Contohnya:
DUMPBIN /PDBPATH:VERBOSE filename.exe
Server Simbol
Server simbol adalah repositori untuk beberapa versi file yang dapat dieksekusi dan simbol. Ini berisi file simbol itu sendiri, atau penunjuk ke file simbol terkait. Debugger memahami cara menggunakan server simbol, dan dapat menggunakannya untuk mencari simbol yang hilang atau tidak diketahui.
DLL dan file yang dapat dieksekusi juga tersedia dari server simbol Microsoft. Ini memungkinkan untuk men-debug crash dan memeriksa kode untuk file sistem operasi yang mungkin tidak ada di komputer Anda. Jika debugger menemukan file yang dapat dieksekusi atau DLL yang tidak ada pada sistem yang Anda gunakan untuk penelusuran kesalahan, debugger secara otomatis meminta simbol dan salinan file biner dari server simbol Microsoft. Ini berguna jika Anda menelusuri kesalahan komponen yang memiliki banyak versi—misalnya, msvcrt.dll—dan Anda perlu memeriksa kode untuk versi yang tidak ada di komputer Anda. Ini juga membantu men-debug cadangan mini yang dihasilkan pada sistem operasi yang berbeda dari sistem yang Anda gunakan untuk penelusuran kesalahan.
Microsoft menerbitkan semua file PDB untuk semua sistem operasi dan komponen lain yang didistribusikan ulang, seperti DirectX SDK, di server simbol yang dapat diakses secara eksternal. Ini memudahkan untuk men-debug aplikasi yang menggunakan DLL ini atau file yang dapat dieksekusi. Anda dapat menggunakan server simbol Microsoft untuk mengatasi simbol, bersama dengan simbol lokal apa pun untuk komponen yang dibangun di komputer Anda.
Anda dapat menyiapkan komputer untuk menggunakan server simbol Microsoft, yang memberi Anda akses ke semua file simbol Microsoft. Anda juga dapat menyiapkan server simbol privat untuk perusahaan, tim, atau jaringan Anda, yang dapat digunakan untuk menyimpan beberapa versi proyek lama yang sedang Anda kerjakan, atau untuk menyediakan cache lokal untuk simbol yang Anda gunakan dari server simbol Microsoft.
Untuk menggunakan server simbol, tentukan jalur pencarian dalam variabel lingkungan yang disebut _NT_SYMBOL_PATH. Debugger dan alat modern, seperti WinDbg, NTSD atau Visual Studio, secara otomatis menggunakan jalur ini untuk mencari simbol.
Saat debugger mencari simbol, debugger pertama kali mencari secara lokal. Kemudian terlihat pada server simbol. Ketika menemukan simbol yang cocok, ia mentransfer file simbol ke cache lokal Anda. Simbol untuk DLL biasa atau file yang dapat dieksekusi berukuran 1 hingga 100 MB. Oleh karena itu, jika Anda men-debug proses yang mencakup banyak DLL, perlu waktu untuk menyelesaikan semua simbol dan mentransfernya ke cache lokal.
Menggunakan Microsoft Symbol Server
Server simbol Microsoft memungkinkan Anda untuk mendapatkan semua simbol terbaru, termasuk simbol untuk file yang di-patch atau diperbarui. Server simbol Microsoft tersedia di https://msdl.microsoft.com/download/symbols.
Anda dapat mengakses server simbol dengan salah satu cara berikut:
Masukkan alamat server secara langsung. Di Visual Studio, dari menu Alat , pilih Opsi, lalu pilih Debugging, lalu pilih Simbol.
Gunakan variabel lingkungan _NT_SYMBOL_PATH. Kami merekomendasikan metode ini.
Ini digunakan oleh semua alat penelusuran kesalahan. Ini juga digunakan oleh Visual Studio, dan dibaca dan didekodekan saat Visual Studio terbuka. Oleh karena itu, jika Anda mengubahnya, Anda perlu memulai ulang Visual Studio.
Variabel lingkungan ini memungkinkan Anda menentukan beberapa server simbol—misalnya, server simbol privat internal. Ini juga memungkinkan Anda menentukan direktori cache lokal untuk menyimpan PDB untuk semua simbol yang Anda cari dari server simbol, baik secara internal maupun melalui Internet.
Sintaks untuk variabel _NT_SYMBOL_PATH adalah:
srv*[local cache]*[private symbol server]*https://msdl.microsoft.com/download/symbols
Ganti [cache lokal] dengan nama direktori di komputer tempat Anda ingin menyimpan cache dari simbol apa pun yang digunakan—misalnya, %SYSTEMROOT%\Symbols, atau c:\symbols.
[server simbol privat] bersifat opsional. Ini dapat menunjuk ke server simbol yang terletak di jaringan Anda, atau dapat menunjuk ke server simbol yang dibagikan oleh tim, grup produk, atau perusahaan Anda.
Untuk hanya menggunakan server simbol Microsoft bersama dengan cache simbol lokal, untuk mempercepat akses melalui Internet, gunakan pengaturan berikut untuk _NT_SYMBOL_PATH:
srv*c:\symbols*https://msdl.microsoft.com/download/symbols
Anda dapat menemukan opsi lain untuk _NT_SYMBOL_PATH dalam file bantuan yang diinstal dengan paket Microsoft Debugging Tools for Windows.
Executable tanpa simbol dapat meningkatkan waktu yang diperlukan untuk meluncurkan debugger jika Anda menggunakan server simbol. Ini karena debugger meminta server simbol setiap kali mencoba memuat yang dapat dieksekusi. Untuk alasan ini, yang terbaik adalah selalu meminta simbol untuk semua komponen.
Mungkin tidak dimungkinkan untuk meminta simbol untuk setiap komponen—misalnya, driver video mungkin memiliki DLL di ruang proses Anda, dan file PDB yang diperlukan tersedia di server simbol Microsoft. Dalam hal ini, ada penundaan kecil saat Anda memulai sesi penelusuran kesalahan.
Untuk menghindari penundaan kecil ini, Anda dapat menjalankan debugger sekali, untuk menyimpan semua simbol secara lokal dari server simbol Microsoft. Kemudian, ubah _NT_SYMBOL_PATH Anda untuk menghapus server simbol Microsoft. Kecuali file yang dapat dieksekusi berubah, memeriksa file yang dapat dieksekusi yang tidak memiliki simbol tidak akan memerlukan kueri melalui Internet, karena Anda memiliki salinan cache lokal dari semua simbol yang Anda butuhkan dari server simbol Microsoft.
Mendapatkan Simbol Secara Manual
Jika Anda telah menyiapkan debugger dengan benar, debugger secara otomatis memuat simbol apa pun yang diperlukan dari cache lokal Anda atau dari server simbol. Jika Anda ingin mendapatkan simbol hanya untuk satu executable, atau untuk folder executable, Anda dapat menggunakan symchk. Misalnya, jika Anda ingin mengunduh simbol untuk file d3dx9_30.dll di folder Sistem Windows ke direktori saat ini, Anda dapat menggunakan perintah berikut:
"c:\Program Files\Debugging Tools for Windows\symchk" c:\Windows\System32\d3dx9_30.dll /oc \.
Alat symchk memiliki banyak keguniaan lain. Untuk detailnya, lihat symchk /?, atau lihat dokumentasi Microsoft Debugging Tools for Windows.
Menyiapkan Server Simbol
Menyiapkan server simbol sangat sederhana. Ini berguna karena alasan berikut:
- Untuk menghemat bandwidth, atau mempercepat resolusi simbol untuk perusahaan, tim, atau produk Anda. Server simbol internal pada berbagi file lokal di jaringan Anda menyimpan referensi apa pun ke server simbol eksternal, seperti server simbol Microsoft. Server simbol lokal atau internal dapat diakses dengan cepat oleh banyak orang secara bersamaan. Oleh karena itu, ini menghemat bandwidth dan latensi yang dapat dibuat oleh permintaan simbol duplikat.
- Untuk menyimpan simbol untuk build lama, versi, atau rilis eksternal aplikasi Anda. Dengan menyimpan simbol untuk build ini pada server simbol yang dapat Anda akses dengan mudah, Anda dapat men-debug crash dan masalah dalam build ini di komputer apa pun yang memiliki debugger dan koneksi ke server simbol lokal. Ini sangat berguna jika Anda men-debug cadangan mini yang dihasilkan oleh executable yang tidak Anda bangun sendiri—yaitu, build yang dihasilkan oleh programmer lain atau oleh mesin build. Jika simbol untuk build ini disimpan di server simbol Anda, Anda akan memiliki penelusuran kesalahan yang andal dan akurat.
- Untuk menjaga simbol tetap terbarui. Ketika komponen diperbarui, seperti komponen OS yang dimodifikasi oleh Windows Update atau oleh DirectX SDK, Anda masih dapat men-debug dengan menggunakan semua simbol terbaru.
Menyiapkan server simbol di jaringan lokal Anda sendiri semahal membuat berbagi file di server dan memberi pengguna izin penuh untuk mengakses berbagi, untuk membuat file dan folder. Berbagi ini harus dibuat pada sistem operasi server, seperti Windows Server 2003, sehingga jumlah orang yang dapat mengakses berbagi secara bersamaan tidak terbatas.
Misalnya, jika Anda menyiapkan berbagi file di \\mainserver\symbols, maka anggota tim Anda mengatur _NT_SYMBOL_PATH ke yang berikut:
Srv*c:\symbols*\\mainserver\symbols*https://msdl.microsoft.com/download/symbols
Saat simbol diambil, file dan folder muncul di direktori bersama \\mainserver\symbols, serta dalam cache individual, di direktori c:\symbols.
Ini biasanya semua yang terlibat dalam pengaturan dan penggunaan server simbol Anda sendiri, atau server simbol Microsoft.
Menambahkan Simbol ke Server Simbol
Untuk menambahkan, menghapus, atau mengedit file pada berbagi server simbol, gunakan alat symstore.exe. Alat ini adalah bagian dari paket Microsoft Debugging Tools for Windows. Dokumentasi lengkap tentang server simbol, alat symstore, dan simbol pengindeksan disertakan dalam paket Alat Penelusuran Kesalahan untuk Windows.
Anda mungkin ingin menambahkan simbol langsung ke server simbol Anda sendiri, sebagai bagian dari proses build, atau untuk membuat simbol tersedia untuk seluruh tim Anda untuk pustaka atau alat pihak ketiga. Proses penambahan simbol ke berbagi file server simbol disebut simbol pengindeksan. Ada dua cara umum untuk mengindeks simbol. File simbol dapat disalin ke server simbol. Atau, penunjuk ke lokasi simbol dapat disalin ke server simbol. Jika Anda memiliki folder arsip yang berisi build lama, Anda mungkin ingin mengindeks penunjuk ke file PDB yang sudah ada di berbagi, alih-alih menduplikasi simbol. Karena simbol terkadang dapat berukuran puluhan megabyte, ada baiknya untuk merencanakan ke depan berapa banyak ruang yang mungkin Anda butuhkan untuk mengarsipkan semua build proyek Anda sepanjang pengembangan. Jika Anda hanya mengindeks penunjuk ke simbol, Anda mungkin memiliki masalah jika Anda menghapus build lama, atau mengubah nama berbagi file.
Misalnya, untuk mengindeks secara rekursif semua simbol dalam c:\dxsym\Extras\Symbols yang Anda peroleh dari DirectX SDK Oktober 2006 ke berbagi file server simbol yang disebut \\mainserver\symbols, Anda dapat menggunakan perintah berikut:
"c:\Program Files\Debugging Tools for Windows\symstore" add /f "C:\dxsym\Extras\Symbols\*.pdb"
/s \\mainserver\symbols /t "October 2006 DirectX SDK " /r
Parameter "komentar" /t digunakan untuk menambahkan deskripsi ke transaksi yang menambahkan simbol. Ini dapat berguna saat melakukan tugas administratif pada simbol.
Praktik Terbaik
- Siapkan berbagi file server simbol Anda sendiri untuk tim, perusahaan, atau produk Anda.
- Siapkan _NT_SYMBOL_PATH untuk menunjuk ke cache lokal, ke server simbol privat, dan ke server simbol Microsoft.
- Jika debugger tidak dapat memuat simbol untuk komponen yang Anda debug, hubungi pemilik komponen untuk meminta simbol—setidaknya PDB yang dilucuti.
- Siapkan sistem build otomatis untuk mengindeks simbol di server simbol privat Anda untuk setiap build yang diproduksi. Pastikan bahwa build yang Anda distribusikan adalah build yang dihasilkan oleh proses ini. Ini memastikan bahwa simbol selalu tersedia untuk men-debug masalah.
- Siapkan server simbol untuk memungkinkan debugger mengakses kode sumber untuk modul tertentu langsung dari Brankas Sumber Visual atau sistem kontrol sumber berbasis Perforce. Jika informasi file sumber dan simbol untuk versi game yang dirilis diindeks, pengembang yang memiliki akses ke server simbol Anda dapat memiliki penelusuran kesalahan tingkat sumber penuh dari masalah yang dilaporkan, tanpa menyimpan lingkungan build atau versi lama file sumber di komputer pengembangan mereka. Untuk menyiapkan server simbol Anda untuk mengizinkan pengindeksan informasi file sumber, lihat dokumentasi server sumber.