Generasi proyek Visual Studio untuk Windows Standalone
WindowsLowIntegrity

Windows Server

Unity menyediakan beberapa pilihan untuk debugging di Windows untuk forensic atau live debugging dari proses permainan dan editor.

Asli vs. Dikelola Debugging

Unity memungkinkan dua jenis debugging: debugging C++ asli dan debugging yang dikelola C #.

Debugging asli

Toko Debugging asli simbol dalam file pdb untuk file biner terkait, seperti exe dan dll.

Dikelola Debugging

Pada Windows, standar. Simbol yang dikelola NET disimpan dalam file pdb.

Symbols

Unity menyediakan toko simbol di http://symbolserver.unity3d.com/. Banyak seperti toko simbol Microsoft, Anda dapat menggunakan URL server Unity di Windows Debugger (WinDbg), atau Visual Studio 2019 dan kemudian untuk resolusi simbol otomatis dan mengunduh.

WinDbg Setup

Untuk menambahkan toko simbol di WinDbg, gunakan perintah .sympath:

.sympath+ SRV*c:\symbols-cache*http://symbolserver.unity3d.com/

Where:

.sympath+
Selain itu, meninggalkan jalan simbol yang ada sendirian, dan menugaskan tampilan toko simbol ini.

SRV*c:\symbols-cache
SRV menunjukkan server jarak jauh untuk mengambil dari, sedangkan c:\symbols adalah jalur lokal untuk melihat simbol yang diunduh dan terlihat pertama sebelum mengunduh lagi.

*http://symbolserver.unity3d.com/
Jalan ke toko simbol untuk mengambil dari.

Pengaturan Studio Visual

  1. Go to Tools > Options.
  2. Memperluas bagian Debugging dan kemudian pilih Symbols.
  3. Tentukan direktori cache jika belum ditentukan.
  4. Tambahkan Symbol file (.pdb) location (http://symbolserver.unity3d.com/).

Live Debugging

Debu Livegging adalah skenario melampirkan debugger untuk proses yang berjalan normal, atau untuk proses di mana pengecualian telah tertangkap. Untuk debugger untuk mengetahui apa yang terjadi, simbol harus dimasukkan dalam build menggunakan langkah di atas. Selain itu, game executable dinamai sesuai dengan nama permainan Anda, sehingga debugger mungkin memiliki masalah menemukan pdb yang benar jika tidak memiliki akses ke nama yang dapat dieksekusi.

Menyiapkan debugging pengecualian otomatis

Pada Windows, Microsoft mengatur secara otomatis pada aplikasi crash untuk pergi ke Dr Watson/Error Reporting ke Microsoft. Namun, jika Anda memiliki Studio Visual atau WinDbg diinstal, Microsoft menyediakan opsi untuk memilih ke debug kecelakaan.
Untuk kemudahan menginstal, ikuti konten file registry ini untuk menginstal:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
"Auto"="1"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug]
 "Auto"="1"

Konten tambahan untuk debugging Editor:

Unity.exe -dbgbreak
Akan meluncurkan Unity dan segera menawarkan debugger untuk menghubungkan jika penanganan kecelakaan otomatis diatur.

WordPress.org

Windows menyediakan fasilitas untuk menyelidiki file dump crash (.dmp atau .mdmp). Tergantung pada jenis dump kecelakaan, Anda mungkin melihat informasi tumpukan atau seluruh memori proses. Konten file dump menentukan penyebab kecelakaan, yang biasanya memiliki setidaknya tumpukan untuk menyelidiki (selamanya tumpukan yang valid).

Untuk menyelidiki file dump, Anda dapat memuatnya melalui Visual Studio atau WinDbg. Meskipun Visual Studio adalah alat yang lebih ramah untuk digunakan, itu sedikit terbatas daripada WinDbg.

Debugging Hints dan Trik

Ketika menjalankan Visual Studio, Anda dapat menggunakan ekstensi UnityMixedCallstack untuk VS Code oleh Unity yang membuat debugging lebih mudah.

Pengecualian terkelola di tanah asli

A NullReferenceException biasanya terlihat seperti ini:

    1b45558c()  
>   mono-2.0-bdwgc.dll!malloc(unsigned int size=12)  Line 163 + 0x5f bytes  C  
    mono-2.0-bdwgc.dll!g_hash_table_insert_replace(_GHashTable * hash=0x065c3960, void * key=0x0018cba4, void * value=0x0018cb8c, int replace=457528232)  Line 204 + 0x7 bytes  C  
    mono-2.0-bdwgc.dll!mono_jit_runtime_invoke(_MonoMethod * method=0x242bf8b0, void * obj=0x065c3960, void ** params=0x0018cba4, MonoObject * * exc=0x0018cb8c)  Line 4889 + 0xc bytes C  

Melihat bingkai stack yang dikelola

Dengan contoh sebelumnya lagi:

    1b45558c()  
>   mono-2.0-bdwgc.dll!malloc(unsigned int size=12)  Line 163 + 0x5f bytes  C  
    mono-2.0-bdwgc.dll!g_hash_table_insert_replace(_GHashTable * hash=0x065c3960, void * key=0x0018cba4, void * value=0x0018cb8c, int replace=457528232)  Line 204 + 0x7 bytes  C  
    mono-2.0-bdwgc.dll!mono_jit_runtime_invoke(_MonoMethod * method=0x242bf8b0, void * obj=0x065c3960, void ** params=0x0018cba4, MonoObject * * exc=0x0018cb8c)  Line 4889 + 0xc bytes C  

Garis tanpa informasi yang dikelola bingkai. Namun, ada cara untuk mendapatkan informasi tumpukan yang dikelola: mono memiliki fungsi builtin yang disebut mono_pmip, yang menerima alamat bingkai stack dan mengembalikan char * dengan informasi. Anda dapat memanggil mono_pmip di jendela langsung Visual Studio:

?(char*){,,mono-2.0-bdwgc.dll}mono_pmip((void*)0x1b45558c)
0x26a296c0 " Tiles:OnPostRender () + 0x1e4 (1B4553A8 1B4555DC) [065C6BD0 - Unity Child Domain]" Sitemap

Sitemap Ini hanya bekerja di mana simbol Note: dimuat dengan benar.mono-2.0-bdwgc.dll symbols are loaded properly.

Aplikasi Angkatan untuk Membuat Dumps

Secara umum, aplikasi tidak crash dengan debugger terpasang, atau aplikasi crash pada perangkat jarak jauh di mana debugger tidak tersedia. Namun, Anda masih bisa mendapatkan informasi yang berguna jika Anda bisa mendapatkan file dump - ikuti langkah-langkah di bawah ini untuk melakukannya.

Sitemap Instruksi ini berlaku untuk platform Note: dan Windows Standalone saat berjalan di desktop.Universal Windows platforms when running on desktop.

  1. Buka registry.
  2. Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting.
  3. Buat folder LocalDumps jika tidak ada.
  4. Tambahkan tombol berikut:
    • “DumpFolder”=<FolderPath goes here> , e.g., C:\Temp
    • “DumpCount”=dword:00000010
    • “DumpType”=dword:00000002
  5. Luncurkan aplikasi melalui executable Universal Windows PlatformFitur IAP yang mendukung simulator Pembelian Aplikasi Microsoft, yang memungkinkan Anda untuk menguji aliran pembelian IAP pada perangkat sebelum menerbitkan aplikasi Anda. More info
    Lihat di Glossary
    atau Windows Standalone.
  6. Memproduksi kecelakaan. File dump dibuat di folder yang Anda tentukan sebelumnya. Anda dapat membuka file dump dengan Visual Studio atau WinDbg.
Generasi proyek Visual Studio untuk Windows Standalone
WindowsLowIntegrity