Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda dapat menghasilkan beberapa log User-Mode Dump Heap (UMDH) dari proses yang sama dari waktu ke waktu. Kemudian, Anda dapat menggunakan UMDH untuk membandingkan log dan menentukan alokasi tumpukan panggilan mana yang telah tumbuh paling banyak di antara uji coba.
Misalnya, perintah berikut mengarahkan UMDH untuk membandingkan dua log UMDH, Log1.txt dan Log2.txt, dan mengalihkan output ke file ketiga, Compare.txt.
umdh -v Log1.txt Log2.txt > Compare.txt
File Compare.txt yang dihasilkan mencantumkan tumpukan panggilan yang direkam di setiap log dan, untuk setiap tumpukan, menampilkan perubahan alokasi timbunan di antara file log.
Misalnya, baris berikut dari file menunjukkan perubahan ukuran alokasi untuk fungsi dalam tumpukan panggilan berlabel "Backtrace00053."
Pada Log1.txt, panggilan dalam tumpukan memperhitungkan 40.432 (0x9DF0) byte, tetapi pada Log2.txt, tumpukan panggilan yang sama memperhitungkan 61.712 (0xF110) byte, yaitu selisih sebanyak 21.280 (0x5320) byte.
+ 5320 (f110 - 9df0) 3a allocs BackTrace00053
Total increase == 5320
Berikut ini adalah tumpukan untuk alokasi:
ntdll!RtlDebugAllocateHeap+0x000000FD
ntdll!RtlAllocateHeapSlowly+0x0000005A
ntdll!RtlAllocateHeap+0x00000808
MyApp!_heap_alloc_base+0x00000069
MyApp!_heap_alloc_dbg+0x000001A2
MyApp!_nh_malloc_dbg+0x00000023
MyApp!_nh_malloc+0x00000016
MyApp!operator new+0x0000000E
MyApp!LeakyFunc+0x0000001E
MyApp!main+0x0000002C
MyApp!mainCRTStartup+0x000000FC
KERNEL32!BaseProcessStart+0x0000003D
Pemeriksaan terhadap tumpukan panggilan menunjukkan bahwa fungsi LeakyFunc sedang mengalokasikan memori dengan menggunakan pustaka run-time Visual C++. Jika pemeriksaan pada file log lainnya menunjukkan bahwa alokasi tumbuh dari waktu ke waktu, Anda bisa menyimpulkan bahwa memori yang dialokasikan dari tumpukan (heap) tidak dibebaskan.
File Simbol untuk Menganalisis File Log
Misalkan Anda memiliki dua komputer: komputer pengelogan tempat Anda membuat log UMDH dan komputer analisis tempat Anda menganalisis log UMDH. Jalur simbol pada komputer analisis Anda harus menunjuk ke simbol untuk versi Windows yang dimuat pada komputer pengelogan pada saat log dibuat. Jangan arahkan jalur simbol pada komputer analisis ke server simbol. Jika Anda melakukannya, UMDH akan mengambil simbol untuk versi Windows yang berjalan di komputer analisis, dan UMDH tidak akan menampilkan hasil yang bermakna.