Umdhtools.exe: Làm th? nào đ? s? d?ng Umdh.exe đ? t?m b? nh? r? r?

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 268343 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Ti?n ích đ?ng (UMDH) đ? ch? đ? ngư?i dùng ho?t đ?ng v?i các h? đi?u hành đ? phân tích Windows đ?ng phân b? cho m?t quá tr?nh c? th?. Ti?n ích này, và các công c? khác liên k?t v?i nó, ch? y?u nh?m m?c tiêu cho Windows 2000 và Windows XP. B?m vào các Chơi nút đ? xem này tr?nh di?n truy?n thông streaming.

Chú ý Video đư?c m? hoá v?i ACELP ® codec, b?n c?n cài đ?t các codec ACELP ® mi?n phí có s?n t?i http://www.acelp.net/acelp_eval.php



Chú ý B?i v? các malloc ch?c năng trong module C-l?n ch?y (CRT) s? d?ng khung con tr? soùt (FPO) trên b?n phát hành c?a Windows Server 2003, b?n có th? không th?y thông tin hoàn ch?nh ngăn x?p c?a các malloc ch?c năng b?ng cách s? d?ng các công c? UMDH. V?n đ? này c? đ?nh trong các mô-đun CRT c?a Windows Server 2003 Service Pack 1 (SP1). V? v?y, b?n có th? xem các thông tin hoàn ch?nh ngăn x?p c?a các ch?c năng malloc trong Windows Server 2003 SP1.

THÔNG TIN THÊM

Trư?c khi b?n s? d?ng UMDH

N?u b?n ngh? r?ng b?n đang g?p m?t r? r? b? nh?, đư?c nh?n th?c b? nh? đi?u đó r? r? có th? không là nh?ng g? chúng xu?t hi?n đ?. B?n có th? phát hi?n ra r?ng m?t r? r? b? nh? không ph?i là m?t r? r? b? nh? đúng, nhưng là m?t nâng cao hi?u su?t. Cho Ví d?, đ?ng cơ s? d? li?u Microsoft ph?n l?c có th? tiêu th? m?t lư?ng l?n b? nh? (lên đ?n 128 MB trên m?t máy tính 256 MB) v? nó l?y d? li?u và vi?t cache. B? nh? cache cho phép đ?ng cơ ph?n l?c đ? có đư?c nhanh đ?c-trư?c và ghi-trư?c vi?c đ?m.

Đ? xác đ?nh có hay không m?t quá tr?nh đang tr?i qua b? nh? r? r?, s? d?ng Windows hi?u su?t Monitor (Perfmon.exe) và giám sát tư nhân Byte theo th? lo?i quá tr?nh cho các ?ng d?ng c?a b?n. Byte tư nhân là các T?ng b? nh? r?ng ti?n tr?nh đ? phân b?, nhưng không chia s? v?i nhau quy tr?nh. Lưu ? r?ng đi?u này là khác nhau t? ?o byte, mà c?ng thú v? đ? theo d?i. ?o byte là kích thư?c hi?n th?i trong byte c?a các không gian đ?a ch? ?o mà quá tr?nh s? d?ng. M?t ?ng d?ng có th? r? r? ?o b? nh?, nhưng có th? không th?y s? khác bi?t trong các byte tư nhân đư?c phân b?. N?u b?n không th?y b? nh? tăng khi b?n theo d?i byte tư nhân, nhưng b?n nghi ng? r?ng b?n v?n đang ch?y ra kh?i b? nh?, màn h?nh ?o byte đ? xem N?u b?n đang s? d?ng lên b? nh? ?o. Đ? bi?t thêm chi ti?t v? phát hi?n r? r? b? nh? và t?ng quan v? Windows hi?u su?t Monitor (Perfmon.exe), ghé thăm Web site sau c?a Microsoft:
http://MSDN.Microsoft.com/en-US/Library/ms404355.aspx
Đ? đ?m b?o r?ng ?ng d?ng c?a b?n r? r? b? nh?, đ?t các nghi ng? m? trong m?t v?ng l?p v?i nhi?u l?p đi l?p l?i, và sau đó theo d?i riêng tư và ?o byte cho b?t k? tăng b? nh?. Xem đ? đ?m b?o r?ng s? tư nhân byte và ?o byte không cu?i cùng ? cùng và các s? ng?ng gia tăng. N?u có m?t đi?m mà t?i đó b? nh? d?ng ngày càng tăng, (ví d?, nó không ti?p t?c lên cao vô h?n đ?nh) b?n làm không nh?n th?y m?t r? r? b? nh? nhưng nhi?u kh? năng, b?n nh?n th?y m?t b? nh? cache đang gia tăng c?a nó Kích thư?c t?i đa.

N?u b?n xác đ?nh r?ng b?n th?y m?t r? r? b? nh?, trư?c khi b?n s? d?ng UMDH, h?y làm theo các bư?c sau:
  1. Cài đ?t các ti?n ích UMDH.
  2. Đ?t bi?n môi trư?ng h? th?ng đư?ng d?n bao g?m các thư m?c nơi b?n cài đ?t UMDH.
  3. Thi?t l?p các bi?n môi trư?ng _NT_SYMBOL_PATH đ? các Microsoft bi?u tư?ng đư?ng d?n máy ch? đ? các UMDH có th? xác đ?nh k? hi?u g? l?i t?p tin.
Các ti?n ích UMDH đư?c bao g?m v?i các công c? g? l?i cho S?n ph?m Windows lúc sau Web site c?a Microsoft:
http://www.Microsoft.com/whdc/devtools/ddk/Default.mspx
T?i v? và cài đ?t các ti?n ích, và sau đó thi?t l?p h? th?ng đư?ng d?n bi?n môi trư?ng đ? con đư?ng mà các công c? g? l?i đ? đư?c cài đ?t.

Trư?c khi b?n s? d?ng UMDH, b?n ph?i cài đ?t các k? hi?u g? l?i chính xác các thành ph?n c?a ?ng d?ng c?a b?n và h? th?ng đi?u hành c?a b?n. S? d?ng Microsoft Bi?u tư?ng h? ph?c v? đ? có đư?c các k? hi?u g? l?i cho các thành ph?n c?a Microsoft. Đ? bi?t thêm thông tin v? Microsoft bi?u tư?ng máy ch?, nh?p vào s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
311503Dùng h? ph?c v? Microsoft bi?u tư?ng đ? có đư?c g? l?i bi?u tư?ng t?p
UMDH c? g?ng đ? t?m các t?p tin bi?u tư?ng b?ng cách s? d?ng các Bi?n môi trư?ng _NT_SYMBOL_PATH. L?nh đ? thi?t l?p đư?ng d?n t? m?t d?u nh?c l?nh có th? trông tương t? như sau:
đ?t _NT_SYMBOL_PATH = SRV * c:\LocalSymbolCache
Đ? có thêm thông tin v? thi?t l?p bi?u tư?ng g? l?i thông tin, h?y xem ph?n "G? l?i Symbols" sau này trong bài vi?t này.

Sau khi hoàn t?t các bư?c này, b?n đ? s?n sàng đ? s? d?ng ti?n ích UMDH.

Thu gi? Heap b?i v?i UMDH

UMDH là m?t ti?n ích mà b?i thông tin v? heap phân b? c?a m?t quá tr?nh. Thông tin này bao g?m callstack cho m?i phân b?, s? lư?ng các phân b? đư?c th?c hi?n thông qua đó callstack, và s? byte đư?c tiêu th? thông qua đó callstack. Ví dụ:
00005320 bytes in 0x14 allocations (@ 0x00000428) by: BackTrace00053
           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
				
Đ?u ra UMDH này cho th?y r?ng đ? có nh?ng 21280 (0x5320) byte phân b? T?ng s? t? callstack. 21280 Byte đư?c c?p phát t? 20 (0x14) riêng bi?t phân b? c?a 1064 byte (0x428). Callstack đư?c cho m?t đ?nh danh c?a BackTrace00053.

Đ? s?n xu?t m?t b?i ch?a t?p c?a heap phân b?, b?n ph?i s? d?ng ti?n ích Gflags.exe, c?ng đư?c bao g?m v?i các s?n ph?m công c? g? l?i cho Windows, đ? cho h? đi?u hành bi?t r?ng b?n mu?n h?t nhân đ? theo d?i các phân b?.

Gi? đ?nh r?ng b?n mu?n đ? b?i ch?a n?i dung heap(s) cho Notepad.exe. Trư?c tiên b?n ph?i cho phép ch?ng d?u v?t mua l?i cho ?ng d?ng mà b?n mu?n th? nghi?m. Theo m?c đ?nh, tính năng này không đư?c phép. L?nh đ? kích ho?t tính năng này là như sau:
gflags -i notepad.exe + ust
L?nh không cho phép ngăn x?p truy t?m cho các quy tr?nh đang v?n đang ch?y, nhưng nó cho phép ngăn x?p truy t?m cho t?t c? các v? x? t? trong tương lai c?a Notepad.exe. Ngoài ra, b?n có th? đ?t c? thông qua ngư?i s? d?ng GFLAGS giao di?n (ch?y Gflags.exe mà không có b?t k? đ?i s? đ? có đư?c giao di?n ngư?i dùng). S? d?ng các -ust tùy ch?n cho gflags đ? vô hi?u hóa ngăn x?p truy t?m khi ñang hoàn thành g? l?i.

Khi b?n đ?t c? h?nh ?nh thông qua Gflags.exe, và b?n thi?t l?p các k? hi?u g? l?i, b?n đ? s?n sàng đ? b?t đ?u Notepad (các ?ng d?ng đang dùng UMDH). Sau khi chương tr?nh đư?c b?t đ?u, b?n ph?i xác đ?nh quá tr?nh ID (PID) c?a quá tr?nh Notepad ch? m?i b?t đ?u. L?nh này là như sau:
tlist
B?n có th? t?m th?y PID t? đ?u ra c?a các ?ng d?ng TLIST. Thông tin PID c?ng có th? thu đư?c t? Task Manager. Gi? đ?nh PID cho tr?nh Notepad b?n ch? m?i b?t đ?u là 124. B?n có th? s? d?ng UMDH đ? có đư?c m?t đ?ng đ? v?i l?nh sau đây:
umdh - p: 124 - f:notepad124.log
K?t qu?: B?n có m?t hoàn thành đ?ng đ? c?a quá tr?nh Notepad trong các Notepad124.log t?p tin. T?p tin này cho th?y t?t c? các phân b? đ? đư?c th?c hi?n và callstacks nơi phân b? các đ? đư?c th?c hi?n.

S? d?ng Umdh.exe đ? so sánh các b?n ghi UMDH

Trong khi các t?p tin log UMDH ch?a thông tin giá tr? v? nh?ng t?nh tr?ng hi?n th?i c?a heaps cho m?t quá tr?nh, n?u b?n có liên quan v?i vi?c t?m ki?m m?t r? r? b? nh?, nó có th? có giá tr? hơn đ? so sánh k?t qu? đ?u ra c?a hai b?n ghi và t?m hi?u nh?ng g? callstack đ? nh?n th?y s? tăng trư?ng l?n nh?t gi?a hai b?i ch?a t?p. Các ti?n ích Umdh.exe giúp so sánh hai UMDH Nh?t k? đ? cung c?p m?t phân tích c?a các s? khác bi?t gi?a chúng. M?t khi b?n đ? hai b?n ghi b? b?t gi? t?i khác nhau kho?ng th?i gian, b?n có th? sau đó s? d?ng l?nh sau đây:
UMDH dh1.log dh2.log > cmp12.txt
- hay -
UMDH -d dh1.log dh2.log > cmp12.txt
Các -d d?ng l?nh tùy ch?n cho UMDH đ? hi?n th? trong th?p phân thay v? h? th?p l?c phân. K?t xu?t c?a l?nh so sánh s? khác bi?t c?a các phân b? gi?a hai b?n ghi và cung c?p các thông tin tương t? như sau đây:
+ 5320 (f110 - 9df0) 3a allocs BackTrace00053 T?ng s? tăng == 5320
Đ?i v?i m?i BackTrace trong các t?p tin đăng nh?p UMDH, đó là m?t so sánh th?c hi?n gi?a các t?p tin b?n ghi hai. Trư?ng h?p này cho th?y r?ng t?p nh?t k? cu?i cùng là quy đ?nh t?i UMDH d?ng l?nh có 0xF110 byte đư?c phân b? trong khi l?n đ?u tiên đăng nh?p vào d?ng l?nh UMDH có 0x9DF0 byte đư?c phân b? cho BackTrace tương t? (callstack). "5320" Là s? khác bi?t v? s? lư?ng byte đư?c phân b?. Trong trư?ng h?p này, đ? có 0x5320 nhi?u byte đư?c giao gi?a th?i gian mà các hai b?n ghi b? b?t. Các byte đ?n t? callstack đư?c xác đ?nh b?i "backtrace00053".

Bư?c ti?p theo là đ? t?m hi?u nh?ng g? là trong đó backtrace. N?u b?n m? t?p tin đăng nh?p th? hai và t?m ki?m BackTrace00053, b?n có th? t?m th?y cái g? đó tương t? như sau:
00005320 bytes in 0x14 allocations (@ 0x00000428) by: BackTrace00053
           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
				
Khi b?n xem callstack, b?n có th? th?y r?ng các LeakyFunc ch?c năng phân b? b? nh? thông qua thư vi?n l?n ch?y Visual C++ nhà đi?u hành m?i ch?c năng. N?u b?n th?y r?ng s? phân b? phát tri?n như b?n L?y t?p k?t xu?t b?, b?n có th? k?t lu?n r?ng b? nh? không đư?c gi?i thoát.

Cho phép d?u v?t Stack

Thông tin quan tr?ng nh?t trong các b?n ghi UMDH là d?u v?t ngăn x?p c?a đ?ng phân b?. B?n có th? phân tích chúng đ? xác minh n?u m?t quá tr?nh r? r? b? nh? b? nh?. Theo m?c đ?nh, nh?ng d?u v?t ch?ng không đư?c mua l?i. B?n có th? cho phép đi?u này tính năng cho m?i quá tr?nh ho?c toàn h? th?ng. S? d?ng l?nh sau đ? kích ho?t tính năng ngăn x?p truy t?m toàn h? th?ng:
gflags - r + ust
Kh?i đ?ng l?i máy tính sau khi l?nh này. Cho m?i quá tr?nh vi?c kích ho?t, l?nh là như sau:
gflags -i APPNAME + ust
Nơi APPNAME tên t?p tin c?a t?p tin th?c thi trong đó có ph?n m? r?ng (cho Ví d?, Services.exe, Lsass.exe). L?nh không cho phép ngăn x?p truy t?m cho m?t quá tr?nh đó đang ch?y. V? v?y, cho quá tr?nh mà b?n có th? không kh?i đ?ng l?i (cho ví d?, d?ch v?, lsass, tr?nh), b?n ph?i kh?i đ?ng l?i th? nghi?m c?a b?n máy tính.

S? d?ng các l?nh sau đây đ? ki?m tra xem nh?ng g? thi?t đ?t có là đ?t toàn h? th?ng ho?c cho m?t quá tr?nh c? th?: toàn h? th?ng:
gflags - r
Quá tr?nh c? th?:
gflags -i APP-tên
Theo m?c đ?nh, đ? sâu water ngăn x?p t?i đa là 16. N?u b?n mu?n Xem sâu hơn callstacks, b?n có th? tăng đi?u này b?ng cách ch?y GFLAGS. Nh?n vào đây đ? ch?n S? đăng k? h? th?ng, r?i g? m?t chi?u sâu m?i trong các Max. Ngăn x?p water Capture sâu ch?nh s?a đi?u khi?n. Nh?p vào Áp d?ng, và sau đó kh?i đ?ng l?i máy tính.
QUAN TR?NG: N?u b?n đang s? d?ng Windows NT 4.0 Service Pack 6, b?n ph?i s? d?ng Umdh_nt4.exe, thay v? c?a Umdh.exe, và b?n ph?i s? d?ng các gflags -r l?nh đ? thi?t l?p truy t?m toàn h? th?ng ngăn x?p. H?y ch?c ch?n r?ng b?n kh?i đ?ng l?i máy tính c?a b?n. Umdh_nt4 ngăn x?p truy t?m không ho?t đ?ng trên m?t cho m?i ti?n tr?nh cơ s? trên Windows NT Phiên b?n 4. Nó ph?i đư?c đ?t cho toàn b? h? th?ng.

G? l?i Symbols

M?t trong nh?ng bư?c quan tr?ng nh?t đ? s? d?ng UMDH là đ? đ?m b?o b?n có t?p tin bi?u tư?ng t?t (.dbg ho?c .pdb t?p tin) đ? có đư?c m?t t?t ch?ng d?u v?t. T?i thi?u, b?n c?n các t?p tin bi?u tư?ng Kernel32.dbg và Ntdll.dbg. B?n có th? có đư?c b? sung k? hi?u g? l?i mà b?n có th? c?n khi b?n t?m hi?u thêm v? mà các thành ph?n r? r? b? nh?. Đ? bi?t thêm thông tin v? làm th? nào đ? có đư?c các t?p tin k? hi?u g? l?i cho Microsoft các thành ph?n, b?m s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
311503Dùng h? ph?c v? Microsoft bi?u tư?ng đ? có đư?c g? l?i bi?u tư?ng t?p
Đ? có thêm thông tin v? cách s? d?ng các Microsoft bi?u tư?ng Server và làm th? nào đ? có đư?c Windows bi?u tư?ng gói, truy c?p vào các Microsoft Web site sau:
http://www.Microsoft.com/whdc/devtools/ddk/Default.mspx
Khi b?n xây d?ng các thành ph?n v?i Visual C++, nó là quan tr?ng mà b?n không có cơ s? d? li?u chương tr?nh cho so?n và ti?p t?c l?a ch?n cho C++ tùy ch?n biên d?ch. Thay vào đó, ch?n chương tr?nh cơ s? d? li?u. Đ? thi?t l?p đư?ng d?n bi?u tư?ng, kh?i t?o bi?n môi trư?ng _NT_SYMBOL_PATH đ?n con đư?ng s? đư?c s? d?ng. B?n có th? s? d?ng h? ph?c v? Microsoft bi?u tư?ng đ? thu đư?c các bi?u tư?ng cho Microsoft các thành ph?n.
311503 Dùng h? ph?c v? Microsoft bi?u tư?ng đ? có đư?c g? l?i bi?u tư?ng t?p
Làm theo các bư?c sau đ? thi?t l?p _NT_SYMBOL_PATH bi?n môi trư?ng:
  1. Trong b?ng đi?u khi?n, b?m đúp vào Các vấn đề.
  2. B?m vào các Nâng cao tab, và sau đó b?m Các bi?n môi trư?ng.
Ho?c b?n có th? thi?t l?p các bi?n môi trư?ng _NT_SYMBOL_PATH m?t c?a s? l?nh trư?c khi UMDH ch?y.

LƯU ?: C?ng bao g?m các đư?ng d?n đ?n PDBs cho các thành ph?n c?a b?n ?ng d?ng. Ví d?, thi?t l?p đư?ng d?n cho _NT_SYMBOL_PATH đ? sau đây:
SRV*c:\symbols*http://msdl.Microsoft.com/Download/symbols;c:\myapplicationssymbols
Ph?n đ?u tiên c?a con đư?ng này tr? t?i h? ph?c v? Microsoft bi?u tư?ng và ti?u bang r?ng các bi?u tư?ng đư?c s? d?ng s? đư?c t?i xu?ng trong c:\symbols thư m?c. Phía sau semi-colon đó là đư?ng d?n đ?n t?p tin PDB (bi?u tư?ng t?p) đ?c bi?t cho các ?ng d?ng b? r? r?.

G?i UMDH

Tham s? d?ng l?nh c?n thi?t ch? cho UMDH là các -p tùy ch?n, trong đó xác đ?nh PID c?a quá tr?nh mà t? đó m?t đ?ng b?i ch?a s? đư?c l?y. PID có th? đư?c l?y b?ng cách s? d?ng Task Manager ho?c các Chương tr?nh Tlist.exe. Đ?i v?i m?t l?nh tương t? như sau, các b?n ghi s? đ? vào đ?u ra tiêu chu?n:
umdh - p: PID
UMDH c?ng s? hi?n th? thông báo thông tin khác nhau tiêu chu?n l?i, và do đó n?u b?n không chuy?n hư?ng nó, nó đư?c tr?n v?i đăng nh?p th?c t?. Đ? thu th?p các UMDH thông tin thư trong m?t t?p tin, s? d?ng l?nh sau đây:
umdh - p: PID 2>umdh.msg
N?u b?n mu?n thu th?p t?p nh?t k? đ? c?a UMDH trong m?t t?p tin, s? d?ng m?t trong các l?nh sau đây:
umdh - p: PID > umdh.log
- hay -
umdh - p: PID-f:umdh.log
Nh?ng l?nh này là tương đương.

Nh?t k? m?c đ?nh là thu đư?c b?i UMDH ch?a m?t li?t kê c?a ngư?i tiêu dùng đ?ng đư?c s?p x?p theo s? đ?m phân b?. N?u, cho các m?c đích g? l?i, b?n c?ng c?n m?t b?i ch?a t?p c?a t?t c? nh?ng kh?i phân b? v?i d?u v?t ngăn x?p tương ?ng c?a h?, các -d tùy ch?n có th? đư?c dùng:
umdh - p: PID -d
N?u b?n s? d?ng l?nh này, b?n có th? xem sau đây trong UMDH t?p s? ghi:
Phân b? cho water BackTrace00046: 005F69A0 005F6150
Đây là đ?a ch? b? nh? c?a các phân b? cho r?ng callstack. N?u tr?nh g? l?i c?a b?n g?n li?n v?i quá tr?nh này, b?n có th? đ? các n?i dung c?a b? nh? lúc các đ?a ch? đ? xem nh?ng g? đ? đư?c phân b?.

N?u các b?n ghi có ch?a thông tin quá nhi?u, nó có th? đư?c gi?i h?n ch? l?n ngư?i dùng có phân b? đ?m trên m?t ngư?ng nh?t đ?nh. S? d?ng các l?nh sau:
umdh - p: PID - t: ngư?ng
T?t c? các tùy ch?n d?ng l?nh (ví d?, -p, -f, -t, -d) có th? đư?c xác đ?nh cùng m?t lúc theo th? t? b?t k?. Sau đây là m?t khó khăn hơn ví d? d?ng l?nh:
umdh - p: 123 - t: 1000 - f:umdh.log -d
L?nh này b?i heaps cho quá tr?nh v?i PID 123 thành các t?p tin Umdh.log. Nó b?i ch? ngăn x?p d?u v?t r?ng tài kho?n cho hơn 1000 phân b? và nó c?ng b?i các đ?a ch? c?a các kh?i đ?ng là giao thông qua m?i ch?ng d?u v?t.

M?t tùy ch?n UMDH h?u ích là các -l tùy ch?n. Đi?u này gây ra, t?p tin d?ng s? đ? đư?c in trong các callstack m?i khi có th?.

UMDH Output gi?i thích

N?u b?n đ?i hư?ng đăng nh?p vào m?t t?p tin ()umdh - p: PID-f:umdh.log), n?i dung là tương t? như sau đây đư?c thu đư?c t? m?t quá tr?nh Notepad đang ch?y:
UMDH: Logtime 2000-06-28 10:54 - Machine=MYMachine - PID=704
   *********** Heap 00270000 Information ********************
       Flags: 58000062
       Number Of Entries: 87
       Number Of Tags: <unknown>
       Bytes Allocated: 00008DF0
       Bytes Committed: 0000A000
       Total FreeSpace: 00001210
       Number of Virtual Address chunks used: 1
       Address Space Used: <unknown>
       Entry Overhead: 8
       Creator:  (Backtrace00007)
           ntdll!RtlDebugCreateHeap+0x00000196
           ntdll!RtlCreateHeap+0x0000023F
           ntdll!LdrpInitializeProcess+0x00000369
           ntdll!LdrpInitialize+0x0000028D
           ntdll!KiUserApcDispatcher+0x00000007
   *********** Heap 00270000 Hogs ********************
   000001A0 bytes in 0x4 allocations (@ 0x00000068) by: BackTrace00031
           ntdll!RtlDebugAllocateHeap+0x000000FB
           ntdll!RtlAllocateHeapSlowly+0x0000005B
           ntdll!RtlAllocateHeap+0x00000D81
           ntdll!LdrpAllocateDataTableEntry+0x00000039
           ntdll!LdrpMapDll+0x000002A4
           ntdll!LdrpLoadImportModule+0x0000010D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpInitializeProcess+0x000009DC
           ntdll!LdrpInitialize+0x0000028D
           ntdll!KiUserApcDispatcher+0x00000007

   000001A0 bytes in 0x4 allocations (@ 0x00000068) by: BackTrace00034
           ntdll!RtlDebugAllocateHeap+0x000000FB
           ntdll!RtlAllocateHeapSlowly+0x0000005B
           ntdll!RtlAllocateHeap+0x00000D81
           ntdll!LdrpAllocateDataTableEntry+0x00000039
           ntdll!LdrpMapDll+0x000002A4
           ntdll!LdrpLoadImportModule+0x0000010D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpInitializeProcess+0x000009DC
           ntdll!LdrpInitialize+0x0000028D
           ntdll!KiUserApcDispatcher+0x00000007
				
Đăng nh?p ch?a m?t b?i ch?a hàng đ?ng trong ti?n tr?nh. Trong ví d? này, Nh?t k? b?t đ?u v?i m?t đ?ng t?i đ?a ch? 270000. Sau khi m?t vài qu?y toàn c?u cho heap, đăng nh?p ch?a m?t b?i ch?a gi?m đư?c s?p x?p theo th? t? x?p ch?ng d?u v?t đó là trách nhi?m phân b? h?u h?t. Khi b?n so sánh các đ?ng thái c?a b? nh? đư?c s? d?ng ? nh?ng kho?nh kh?c khác nhau, b?n có th? suy ra nh?ng g? đ? x?y ra trong các quá tr?nh và n?u b?t k? s? d?ng heap này tương t? như m?t r? r?.

V?n đ? mà b?n có th? tr?i nghi?m khi b?n s? d?ng UMDH

Các l?i ph? bi?n nh?t khi b?n s? d?ng UMDH x?y ra b?i v? ngăn x?p truy t?m không đư?c kích ho?t. Ngoài ra, các bi?u tư?ng không chính xác cho Ntdll.dll ngăn ch?n UMDH t? ch?y. Cho các t?p tin bi?u tư?ng khác, UMDH ch?y nhưng t?p s? ghi có ngăn x?p d?u v?t mà không có ch?c năng tên nhưng thay vào đó có đ?a ch? tương đ?i bên trong mô-đun. M?t l?i th? ba xa xôi ch? đ?nh m?t PID sai. Sau đây thông báo l?i k?t qu? khi b?n c? g?ng ch?y UMDH cho m?t quá tr?nh mà không có ngăn x?p truy t?m đư?c kích ho?t:
C:\>umdh - p: 1140 UMDH: Logtime 2000-06-28 12: 43 - Máy = MyMachine - PID = 1140 k?t n?i.....Mô-đun li?t kê đ?y đ?. SymGetSymFromName (quá tr?nh, ntdll!RtlpStackTraceDataBase, xxx) không thành công, LastError = 126 UmdhGetAddrFromName không th? t?m th?y Stack water DB con tr? (ntdll!RtlpStackTraceDataBase). các bi?u tư?ng ntdll.dll là không chính xác; chúng tôi ph?i có kh? năng nh?n th?y các bi?u tư?ng không chuy?n nh?p.
S? d?ng l?nh sau đ? ki?m tra các thi?t đ?t cho quá tr?nh mà b?n đang đi?u tra:
gflags -i APPNAME
S? d?ng l?nh sau khi b?n d?a trên toàn h? th?ng ch?ng truy t?m:
gflags - r
Nh?ng l?nh này hi?n th? danh sách các lá c? đ?t ra cho các ?ng d?ng. Lưu ? r?ng trong trư?ng h?p c?a toàn h? th?ng ngăn x?p truy t?m, các tính năng có th? xu?t hi?n như ho?t đ?ng nhưng n?u b?n không đ? kh?i đ?ng l?i máy tính sau khi ch?y các gflags - r + ust l?nh, không đư?c kích ho?t th?c s?. N?u b?n mu?n bi?t m?i ?ng d?ng đ? ngăn x?p truy t?m đư?c kích ho?t, b?n có th? xem phím USTEnabled theo khóa registry sau đây:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image t?p tin Th?c hi?n l?a ch?n
N?u b?n ch?y UMDH trên m?t quá tr?nh mà đ? ngăn x?p truy t?m đư?c kích ho?t, nhưng b?n không có kh?i đ?ng l?i ?ng d?ng k? t? khi b?n đ?t c?, b?n có th? nh?n đư?c thông báo sau trong Nh?t k? c?a b?n:
M?t ch?ng d?u v?t không đư?c lưu cho phân chia này (ch? s? == 0)
N?u b?n ch?y không thi?t l?p các đúng đư?ng d?n bi?u tư?ng ho?c các bi?u tư?ng là không chính xác, và b?n ch?y UMDH, b?n có th? nh?n đư?c m?t thông báo l?i trong đăng nh?p. Tuy nhiên, b?n có th? ch? nh?n đư?c không chính xác ho?c gây hi?u nh?m callstacks. Ki?m ch?ng r?ng b?n có các bi?u tư?ng chính xác, b?t đ?u các NTSD h? th?ng tr?nh g? l?i cho m?t quá tr?nh, ví d?:
ntsd notepad
Sau đó, t? bàn đi?u khi?n tr?nh g? l?i, ch?y các LD l?nh đ? t?i các thông tin bi?u tư?ng cho các mô-đun và các LM l?nh vào danh sách nh?ng g? mô-đun đ? n?p bi?u tư?ng c?a h?. Nếu đ?u ra c?a các LM l?nh cho th?y các bi?u tư?ng xu?t kh?u c?t cánh, các bi?u tư?ng là không t?t. N?u b?n có các bi?u tư?ng PDB c?t cánh, các bi?u tư?ng là t?t. B?n có th? nh?n đư?c các thông báo l?i sau n?u b?n ch? đ?nh PID sai:
C:\>umdh - p: 1000 UMDH: Logtime 2000-06-28 09: 45 - máy = MyMachine - PID = 1000 k?t n?i... OpenProcess không thành công, LastError = 0x57

G?i UMDH t? Visual Basic

Nó có th? h?u ích đôi khi đ? đ? m?t s? các b?n ghi theo th?i gian b?i v? s? r? r? có th? không r?t đáng chú ? đ?u tiên. Ví d?, n?u b?n nghi ng? r?ng các ?ng d?ng Web Active Server Pages (ASP) r? r? b? nh?, nó có th? h?u ích đ? vi?t m?t thành ph?n COM trong Visual Basic v? ra đ? UMDH. B?n có th? sau đó g?i thành ph?n đó t? c?a b?n trang ASP.

Các sau đây là m?t s? m? Visual Basic mà invokes UMDH và t?o ra m?t t?p s? ghi đó d?a trên hi?n th?i:
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
      Public Function GetProcessID()
      GetProcessID = GetCurrentProcessId()
      End Function  
   .
   .
   .
      Dim strTime As String

      Dim sProcID As String
      sProcID = GetProcessID()
      strTime = "MYLOG_" & Format(Now(), "hhmm")
     
      Shell ("C:\UMDH\umdh -p:" & sProcID & " -f:d:\logs\" & strTime & ".txt")
				

S? d?ng UMDH v?i Windows NT 4.0 Service Pack 6a (SP6a)

Các ti?n ích UMDH đư?c bao g?m v?i các công c? g? l?i cho S?n ph?m Windows không ho?t đ?ng trên Windows NT 4.0. M?t t?p tin th?c thi self-extracting (Umdhnt4tools.exe) là bao g?m trong bài vi?t này và có sau đây công c? đư?c s? d?ng v?i NT 4.0:
  • Umdh_nt4.exe và Dbghelp.dll
    Đi?u này là Windows NT 4.0 Phiên b?n SP6 c?a ti?n ích UMDH.
  • Dhcmp.exe
    Ti?n ích này đư?c s? d?ng đ? so sánh hai UMDH b?i đ? xác đ?nh trong trư?ng h?p m?t b? nh? có th? r? r? occurrs.
Các t?p tin sau đây có s?n đ? t?i v? t? Microsoft Download Trung tâm:
Thu g?n h?nh ?nh nàyBung r?ng h?nh ?nh này
T?i v?
T?i v? Umdhnt4tools.exe bây gi?
Ngày phát hành: 28 tháng 8 năm 2002

Đ? bi?t thêm thông tin v? cách t?i xu?ng các t?p h? tr? Microsoft, hãy b?m s? bài vi?t sau đ? xem bài vi?t trong Cơ s? Ki?n th?c Microsoft:
119591 Cách tải xuống các tệp hỗ trợ của Microsoft từ dịch vụ trực tuyến
Microsoft đã quét vi-rút cho tệp này. Microsoft đã sử dụng phần mềm dò tìm vi-rút mới nhất hiện có vào ngày tệp được đăng. Tệp này lưu trên máy chủ được tăng cường bảo mật giúp ngăn chặn mọi thay đổi trái phép đối với tệp. Đ?t Umdh_nt4.exe và Dbghelp.dll trong m?t thư m?c, và sau đó đ?t chúng l?n đ?u tiên trong đư?ng d?n bi?n môi trư?ng c?a b?n. S? d?ng Umdh_nt4.exe thay v? UMDH.

Trên m?t máy tính đang ch?y Windows NT 4.0, b?n ph?i s? d?ng Gflags.exe đ? thi?t l?p truy t?m toàn h? th?ng ngăn x?p. Ví dụ:
gflags - r
H?y ch?c ch?n r?ng b?n kh?i đ?ng l?i máy tính c?a b?n. Umdh_nt4 ngăn x?p truy t?m không làm vi?c trên m?t cơ s? cho m?i quá tr?nh trên Windows NT Phiên b?n 4.0. Nó đư?c thi?t l?p cho toàn b? h? th?ng.

UMDH_NT4 là không gi?ng như UMDH ? ch? nó không so sánh các t?p tin log. Ví d?, b?n không th? th?c hi?n như sau:
UMDH_NT4 dh1.log dh2.log > cmp12.txt
Thay vào đó b?n ph?i s? d?ng ti?n ích Dhcmp.exe đư?c bao g?m v?i bài vi?t này. L?nh trông gi?ng như sau:
DHCMP dh1.log dh2.log > cmp12.txt

Thu?c tính

ID c?a bài: 268343 - L?n xem xét sau cùng: 21 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
T? khóa: 
kbdownload kbarttypeshowme kbfile kbgraphxlinkcritical kbhowto kbsample kbmt KB268343 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:268343

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com