Я пытаюсь проанализировать дамп процесса wow64. Проблема в утечке памяти, поэтому мне нужно проверить кучу. Я имею в виду эту статью для анализа дампа:
http://www.codeproject.com/Articles/31382/Memory-Leak-Detection-Using-Windbg.
0:000> .load wow64exts
0:000> !sw
Switched to 32bit mode
0:000:x86> !heap -s
NtGlobalFlag enables following debugging aids for new heaps:
tail checking
free checking
validate parameters
LFH Key : 0x00000000072e0d1a
Termination on corruption : ENABLED
Heap Flags Reserv Commit Virt Free List UCR Virt Lock Fast
(k) (k) (k) (k) length blocks cont. heap
-----------------------------------------------------------------------------
00000000001b0000 40000062 1024 32 1024 8 2 1 0 0
0000000000320000 40001062 47808 45812 47808 7 8 7 0 0
-----------------------------------------------------------------------------
0:000:x86> !heap -stat -h 0000000000320000
*************************************************************************
*** ***
*** ***
*** Either you specified an unqualified symbol, or your debugger ***
*** doesn't have full symbol information. Unqualified symbol ***
*** resolution is turned off by default. Please either specify a ***
*** fully qualified symbol module!symbolname, or enable resolution ***
*** of unqualified symbols by typing ".symopt- 100". Note that ***
*** enabling unqualified symbol resolution with network symbol ***
*** server shares in the symbol path may cause the debugger to ***
*** appear to hang for long periods of time when an incorrect ***
*** symbol name is typed or the network symbol server is down. ***
*** ***
*** For some commands to work properly, your symbol path ***
*** must point to .pdb files that have full type information. ***
*** ***
*** Certain .pdb files (such as the public OS symbols) do not ***
*** contain the required information. Contact the group that ***
*** provided you with these symbols if you need this command to ***
*** work. ***
*** ***
*** Type referenced: wow64!_TEB32 ***
*** ***
*************************************************************************
heap @ 0000000000320000
group-by: TOTSIZE max-display: 20
size #blocks total ( %) (percent of total busy bytes)
Невозможно найти wow64! _TEB32, поэтому не может идти дальше. Есть ли какие-нибудь тела, которые могут помочь этому?
Во-первых, убедитесь, что ваши символы настроены правильно, обычно, делая
.symfix c:\symbols
.reload
Обычно для 32-разрядных приложений необходимо взять 32-разрядный дамп, если вы не хотите отлаживать сам WOW64-уровень.
Однако в вашем случае (относительно команд !heap
) вы можете просто повторить шаги в 32-разрядной версии WinDbg, которая также работает на 64-битной Windows и может открывать 64-битные дампы.