2013-10-26 46 views
2

我想確定哪裏真正的eax寄存器指向[Stack或Heap]。在windbg下面放出!地址輸出顯示它未分類。Windbg <未分類>內存區域

0:014> r 
eax=01198ce8 ebx=00000000 ecx=01198bf8 edx=00000000 esi=01196ed8 edi=01198160 
eip=0710a501 esp=01e8fdc8 ebp=01e8fe28 iopl=0   nv up ei pl nz na po nc 
cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000    efl=00000202 
libmp4v2!MP4GetVideoProfileLevel+0x3bbb: 
0710a501 e83eec0000  call libmp4v2!MP4PrintVideoInfo+0xca2e (07119144) 

0:014> d eax 
01198ce8 76 69 64 65 00 04 38 00-04 00 02 00 cd 01 09 01 vide..8......... 
01198cf8 47 50 41 43 20 49 53 4f-20 56 69 64 65 6f 20 48 GPAC ISO Video H 
01198d08 61 6e 64 6c 65 72 00 00-0f 00 04 00 f1 01 08 01 andler.......... 
01198d18 e8 10 12 07 68 04 38 00-d8 6e 19 01 00 00 00 00 ....h.8..n...... 
01198d28 64 01 00 00 00 00 00 00-2c 1f 00 00 00 00 00 00 d.......,....... 
01198d38 c0 1d 00 00 00 00 00 00-6d 69 6e 66 00 00 38 00 ........minf..8. 
01198d48 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 
01198d58 f0 86 19 01 ff 00 00 00-00 00 00 00 00 00 00 00 ................ 

0:014> !address eax 


Failed to map Heaps (error 80004005) 
Usage:     <unclassified> 
Allocation Base:  01130000 
Base Address:   01130000 
End Address:   011a1000 
Region Size:   00071000 
Type:     00020000 MEM_PRIVATE 
State:     00001000 MEM_COMMIT 
Protect:    00000004 PAGE_READWRITE 

我想知道這是什麼意思?

由於事先

+0

見http://stackoverflow.com/questions/11876516/windbg-address-summary關於什麼'<機密>'手段的一些信息。 – pburka

+0

windbg 6.12? [無法映射堆(錯誤80004005)](http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/c8207dba-78ba-46d0-99c6-be7db06d7ead/resolve-unclassified-entries-in-windbg ?論壇= WinDbg的) – sergmat

回答

0

對我來說,這聽起來像是已讀MP4視頻到內存中的應用程序。有幾個指標是:

  1. 在內存轉儲,我們看到了「韋迪」(視頻)部分和「MINF」(媒體信息)部分。稍後在MP4文件中可能會出現「soun」(聲音)。

  2. 調用堆棧說一些關於libmp4v2 DLL

關於<unclassified>(在WinDbg中的較新版本<unknown>),我看到下面的可能原因:

  1. 的視頻文件大於512 kB,因此通過Windows堆管理器進行分配(例如從C++)並不認爲比直接調用VirtualAlloc()更有效。這是described by Sasha Goldshtein
  2. 內存由.NET分配,.NET擁有自己的堆管理器,構建於VirtualAlloc()之上。

參見這裏SO:what does <unclassified> mean ?