
¡¾»ù±¾½éÉÜ¡¿
ÅäÖÃWinDbgÔËÐÐWinDbg->²Ëµ¥->File->Symbol File Path->°´ÕÕÏÂÃæµÄ·½·¨ÉèÖÃ_NT_SYMBOL_PATH±äÁ¿
ÔÚµ¯³öµÄ¿òÖÐÊäÈë¡°C:\MyCodesSymbols; SRV*C:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols¡±(°´ÕÕÕâÑùÉèÖã¬WinDbg½«ÏÈ´Ó±¾µØÎļþ¼ÐC:\MyCodesSymbolsÖвéÕÒSymbol£¬Èç¹ûÕÒ²»µ½£¬Ôò×Ô¶¯´ÓMSµÄSymbol ServerÉÏÏÂÔØSymbols)¡£ÁíÒ»ÖÖ×ö·¨ÊÇ´ÓÕâ¸öSymbolÏÂÔØµØÖ·ÖÐhttp://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx£¬ÏÂÔØÏàÓ¦²Ù×÷ϵͳËùÐèÒªµÄÍêÕûµÄSymbol°²×°°ü£¬²¢½øÐа²×°£¬ÀýÈçÎÒ½«Æä°²×°ÔÚD:\WINDOWS\Symbols£¬ÔڸÿòÖÐÊäÈë¡°D:\WINDOWS\Symbols¡±¡££¨ÕâÀïҪעÒâÏÂÔØµÄSymbolsµÄ°æ±¾Ò»¶¨ÒªÕýÈ·£¬ÔÚÎÒµÄWin2003+Sp1ÉÏ£¬ÎÒÔø¾ÒÔΪ°²×°Win2003+Sp2µÄSymbols¿ÉÄÜ»áÅ£¡Áµã£¬µ«½á¹ûÖ¤Ã÷ÎÒ´íÁË£¬ÓÃWinDbg´ò¿ª¿ÉÖ´ÐÐÎļþʱ£¬Ìáʾ¡°PDB symbol for mscorwks.dll not loaded;Defaulted to export symbols for ntdll.dll¡±µÄ´íÎó£¬ÎÒÓÐÖØÐÂ×°ÉÏWin2003+Sp1µÄSymbols, ÏÖÔÚÒ»ÇÐÔËÐÐÕý³£^_^£©
¡¾µ÷ÊÔ×¼±¸¡¿
ΪÁ˲âÊÔ WinDbg ÖÐʹÓà SOS À©Õ¹ÃüÁÎÒ´´½¨ÁËÓ¦ÓóÌÐò "MemoryLeakApp.exe"£¬Visual Studio ³ÌÐòÑ¡ÔñΪ 64 λ»·¾³±àÒë¡£

"MemoryLeakApp.exe" Æô¶¯ÔËÐкó¿ÉÄÜÕ¼ÓÃÄÚ´æ600M¡£


´Ëʱ£¬Ñ¡ÔñʹÓà 64 λ WinDbg À´µ÷ÊÔ³ÌÐò¡£ÎÒÃÇÏÈͨ¹ý Attach Process ·½Ê½À´µ÷ÊÔ¡£



µ±È»£¬Èç¹ûÎÒÃÇʹÓÃÁË 32 λµÄ WinDbg È¥ Attach ½ø³Ì£¬»áÖ±½Ó±¨´í¡£

¡¾WinDbg³£ÓÃÃüÁîÊֲ᡿
ÄÚÖðïÖúÃüÁî?
?¡¡¡¡ ÏÔʾ³£¹æÃüÁî
? /D ͨ¹ý DML(Debugging Markup Language) ·½Ê½ÏÔʾ³£¹æÃüÁî
.help
.help ¡¡¡¡ ÏÔʾ . ϵÁÐÃüÁî
.help /D ͨ¹ý DML ·½Ê½ÏÔʾ . ϵÁÐÃüÁî
.help /D a* ͨ¹ý DML ·½Ê½ÏÔʾËùÓÐÒÔ 'a' ×Öĸ¿ªÍ·µÄ . ϵÁÐÃüÁî

.chain
.chain ÁгöËùÓÐÒѼÓÔØµÄµ÷ÊÔÆ÷À©Õ¹
.chain /D ͨ¹ý DML ·½Ê½ÁгöËùÓÐÒѼÓÔØµÄµ÷ÊÔÆ÷À©Õ¹

.extmatch
.extmatch /e ExtDLL FunctionFilter ÏÔʾµ÷ÊÔÆ÷À©Õ¹µÄËùÓе¼³öº¯Êý
.extmatch /D /e ExtDLL FunctionFilter ͨ¹ý DML ·½Ê½ÏÔʾµ÷ÊÔÆ÷À©Õ¹ËùÓе¼³öº¯Êý
.extmatch /D /e uext * ÏÔʾ uext À©Õ¹ÖеÄËùÓе¼³öº¯Êý

.hh
.hh ´ò¿ª WinDbg µÄ°ïÖúÎļþ
.hh Text ´ò¿ª WinDbg µÄ°ïÖúÎļþ£¬²¢×Ô¶¯ËÑË÷ Text µÄÄÚÈÝ
.hh dt ÔÚ WinDbg °ïÖúÎļþÖÐËÑË÷ dt ÃüÁî
µ÷ÊԻỰÃüÁî
.attach
.attach PID ¸½¼Óµ½Ö¸¶¨IDµÄ½ø³Ì
.detach
.detach ½áÊøµ÷ÊԻỰ£¬±»µ÷ÊÔ½ø³ÌÈԿɼÌÐøÔËÐÐ

q
q ½áÊøµ÷ÊԻỰ£¬Í¬Ê±ÖÕÖ¹±»µ÷ÊÔ½ø³ÌµÄ½øÐÐ
qq ½áÊøµ÷ÊԻỰ£¬Í¬Ê±ÖÕÖ¹±»µ÷ÊÔ½ø³ÌµÄ½øÐÐ
.restart
.restart ÖØÆô±»µ÷ÊÔÓ¦ÓÃ
Ò»°ãÐÅÏ¢ÃüÁî
version
ÏÔʾµ÷ÊÔÆ÷°æ±¾ÐÅÏ¢ºÍÒѼÓÔØµÄµ÷ÊÔÆ÷À©Õ¹

vercommand
ÏÔʾµ÷ÊÔÆ÷Æô¶¯ÎļþµÄ·¾¶

vertarget
ÏÔʾĿ±ê»úÆ÷µÄ°æ±¾

CTRL+ALT+V
´ò¿ª»ò¹Ø±Õ Verbose ģʽ¿ª¹Ø£¬Ä³Ð©ÃüÁîÔÚ´ËģʽÏ¿ÉÒÔ¸ø³ö¸ü¶àÏêϸÐÅÏ¢
.formats
.formats Expression ÏÔʾÊý×ֵĸ÷ÖÖ¸ñʽÐÅÏ¢
.formats 5

.cls
ÇåÀíÆÁÄ»
.last eventÏÔʾ×îеÄÒì³£ÐÅÏ¢»òʼþÐÅÏ¢
.effmach
.effmach ÏÔʾÓÐЧ×÷ÓõĻúÆ÷ÐÅÏ¢
.effmach .
.effmach #
.effmach x86 | amd64 | ia64 | ebc
.time
ÏÔʾϵͳ¼Ç¼µÄ¸÷ÖÖʱ¼ä

.echo
.echo String Êä³ö×Ö·û´®
.echo "String"
.echo "Hello World"
·ûºÅ¼ÓÔØÃüÁî
ld
ld ModuleName ¼ÓÔØÖ¸¶¨Ä£¿éµÄ·ûºÅ
ld * ¼ÓÔØËùÓÐÄ£¿éµÄ·ûºÅ

!sym
!sym »ñÈ¡·ûºÅ¼ÓÔØ×´Ì¬
!sym noisy Èõ÷ÊÔÆ÷ÏÔʾ·ûºÅËÑË÷ÏêϸÐÅÏ¢
!sym quiet ĬÈÏÏ²»ÏÔʾ·ûºÅËÑË÷ÐÅÏ¢

.sympath
.sympath ÏÔʾºÍÉèÖ÷ûºÅËÑË÷·¾¶
.sympath+ Ôö¼Ó·ûºÅËÑË÷·¾¶
.sympath+ C:\Symbols
.symopt
.symopt ÏÔʾµ±Ç°·ûºÅ¿ÉÑ¡Ïî
.symopt+ Flags Ìí¼Ó·ûºÅ¿ÉÑ¡Ïî
.symopt- Flags ÒÆ³ý·ûºÅ¿ÉÑ¡Ïî
.symfix
.symfix ÉèÖ÷ûºÅ¿â·¾¶
.sym+ DownstreamStore Ìí¼Ó·ûºÅ¿â·¾¶
x
x [Options] Module!Symbol ģʽƥÅä·ûºÅÐÅÏ¢
x /t .. ¸ù¾ÝÊý¾ÝÀàÐÍÆ¥Åä
x /v .. ÏÔʾÏêϸÐÅÏ¢
x /a .. °´ÕÕµØÖ·ÅÅÐò
x /n .. °´ÕÕÃû³ÆÅÅÐò
x /z .. °´ÕÕ´óСÅÅÐò
x *! ÁгöËùÓÐÄ£¿é

x ntdll!* Áгö ntdll Ä£¿é

x /t /v ntdll!* Áгö ntdll Ä£¿éÊý¾ÝÀàÐͺͷûºÅÀàÐÍ

.reload
.reload ÖØÐ¼ÓÔØ·ûºÅÐÅÏ¢
.reload [/f | /v] /f Ç¿ÖÆÁ¢¼´¼ÓÔØ·ûºÅ /v ÏÔʾÏêϸÐÅÏ¢
.reload [/f | /v] Module Module Ϊָ¶¨Ä£¿é¼ÓÔØ·ûºÅÐÅÏ¢
.reload /f @"ntdll.dll"
.reload /f @"C:\WINNT\System32\verifier.dll"
Ä£¿é¼ÓÔØÃüÁî
lm
lm[ v | l | k | u | f ] [m Pattern] ÏÔʾÒѼÓÔØµÄÄ£¿é
lm ÏÔʾËùÓмÓÔØºÍδ¼ÓÔØµÄÄ£¿éÐÅÏ¢

lmv ÏÔʾÒѼÓÔØÄ£¿éµÄÏêϸÐÅÏ¢
lml ͬʱÏÔʾ¼ÓÔØµÄ·ûºÅÐÅÏ¢
lmk ÏÔʾÄÚºËÄ£¿éÐÅÏ¢
lmu ÏÔʾÓû§Ä£¿éÐÅÏ¢
lmf ÏÔʾ¾µÏñ·¾¶
lmm Æ¥ÅäÄ£¿éÃû³Æ
lmD ʹÓà DML ·½Ê½ÏÔʾ

lmv m kernel32 ÏÔʾ kernel32 Ä£¿éÏêϸÐÅÏ¢

!dlls
!dlls ÁгöËùÓмÓÔØµÄÄ£¿éºÍ¼ÓÔØÊýÁ¿
!dlls -i ¸ù¾Ý³õʼ»¯Ë³Ðò
!dlls -l ¸ù¾Ý¼ÓÔØË³Ðò£¨Ä¬ÈÏÏ
!dlls -m ¸ù¾ÝÄÚ´æË³Ðò
!dlls -v ÏÔʾ¸ü¶àÏêϸÐÅÏ¢
!dlls -c ModuleAddr ½öÏÔʾ ModuleAddr µØÖ·µÄÄ£¿éÐÅÏ¢
!dlls -? ÏÔʾ°ïÖú
!dlls -v -c kernel32 ÏÔʾ kernel32.dll µÄÐÅÏ¢
!lmi
!lmi Module ÏÔʾģ¿éµÄÏêϸÐÅÏ¢£¬°üÀ¨¼ÓÔØ·ûºÅÐÅÏ¢
!lmi kernel32 ÏÔʾ kernel32.dll Ä£¿éµÄÐÅÏ¢

Òì³£·ÖÎöÃüÁî
!analyze
!analyze -v ÏÔʾµ±Ç°Òì³£µÄÏêϸÐÅÏ¢
!analyze -hang Õï¶ÏÏ̵߳÷ÓÃÕ»ÉÏÊÇ·ñÓÐÈκÎÏß³Ì×èÈûÁËÆäËûÏß³Ì
!analyze -f ²é¿´Òì³£·ÖÎöÐÅÏ¢£¬¾¡¹Üµ÷ÊÔÆ÷²¢Î´Õï¶Ï³öÒì³£

½ø³ÌÐÅÏ¢ÃüÁî
!dml_proc
ͨ¹ý DML ·½Ê½ÏÔʾµ±Ç°½ø³ÌµÄÐÅÏ¢

.tlist
ÏÔʾµ±Ç°ËùÓнø³Ì

Ïß³ÌÐÅÏ¢ÃüÁî
~
~ ÏÔʾÏß³ÌÐÅÏ¢

~* [Command] ËùÓÐÏß³Ì

~. [Command] µ±Ç°Ïß³Ì

~# [Command] Òý·¢µ±Ç°Ê¼þ»òÒì³£µÄÏß³Ì
~Number [Command] ÏÔʾָ¶¨ÐòºÅµÄÏß³Ì
~~[TID] [Command] ÏÔʾָ¶¨Ïß³ÌIDµÄÏß³Ì
~Ns Çл»µ½Ïß³Ì N
~* k ÏÔʾËùÓÐÏ̵߳ĵ÷ÓÃÕ»
~2 f ¶³½á2ºÅÏß³Ì
~# f ¶³½áÒý·¢Òì³£µÄÏß³Ì
~3 u ½â³ý¶Ô3ºÅÏ̵߳ͳ½á
~2 k ÏÔʾ2ºÅÏ̵߳ĵ÷ÓÃÕ»

~e
~* e CommandString ÔÚËùÓÐÏß³ÌÉÏÖ´ÐÐÃüÁî
~. e CommandString ÔÚµ±Ç°Ïß³ÌÉÏÖ´ÐÐÃüÁî
~# e CommandString ÔÚÒý·¢Òì³£µÄÏß³ÌÉÏÖ´ÐÐÃüÁî
~Number e CommandString ÔÚÖ¸¶¨ÐòºÅµÄÏß³ÌÉÏÖ´ÐÐÃüÁî
~2e r; k; kd Ï൱ÓÚ ~2r; ~2k; ~2kd
~*e !gle ÏÔʾËùÓÐÏ̵߳Ä×îºóÒ»¸ö´íÎóÐÅÏ¢

~f
~Thread f ¶³½áÏß³Ì
~u
~Thread u ½â³ý¶³½áÏß³Ì
~n
~Thread n ¹ÒÆðỊ̈߳¬Ôö¼ÓÏß³Ì¹ÒÆðÊýÁ¿
~m
~Thread m »Ö¸´Ị̈߳¬¼õÉÙÏß³Ì¹ÒÆðÊýÁ¿
!teb
ÏÔʾÏ̻߳·¾³ÐÅÏ¢

!tls
!tls -1 -1 ΪÏÔʾµ±Ç°Ïß³ÌËùÓÐµÄ slot ÐÅÏ¢
!tls SlotIdx ÏÔʾָ¶¨µÄ slot ÐÅÏ¢
!tls [-1 | SlotIdx] TebAddr

.ttime
ÏÔʾÏß³Ìʱ¼äÐÅÏ¢

!runaway
[Flags: 0 | 1 | 2] ÏÔʾÿ¸öÏß³ÌÏûºÄµÄʱ¼ä£¬ÓÃÓÚ¿ìËٵIJéÕÒ CPU ʱ¼äÏûºÄ×î¶àµÄÏß³Ì
0 Óû§Ì¬Ê±¼ä
1 ÄÚºË̬ʱ¼ä
2 ×ÔÏ̴߳´½¨ÆðµÄʱ¼ä¼ä¸ô

!gle
!gle ÏÔʾµ±Ç°Ï̵߳Ä×îºó´íÎó
!gle -all ÏÔʾËùÓÐÏ̵߳Ä×îºó´íÎó
!error
!error ErrValue ½âÎö´íÎóÐÅÏ¢
!error ErrValue 1 ½«´íÎóÖµ×÷Ϊ NTSTATUS ´úÂë
¶ÑÕ»ÐÅÏ¢ÃüÁî
k
k [n] [f] [L] [#Frames] ÏÔʾµ÷ÓÃÕ»ÐÅÏ¢
kn µ÷ÓÃÕ»°üº¬Ö¡ºÅ
kf ÁÙ½üÖ¡µÄ¾àÀë
kL ºöÂÔÔ´´úÂë
kb ... ×ʼµÄ 3 ²ÎÊý
kp ... ËùÓеIJÎÊý£¬°üÀ¨²ÎÊýÀàÐÍ¡¢Ãû³ÆºÍÖµ
kP ... ËùÓеIJÎÊý
kv ... FPOÐÅÏ¢
kb 5 ÏÔʾ×ʼµÄ 5 ¸öÖ¡

kd
kd [WordCnt] ÏÔʾÔʼջÊý¾ÝºÍ¿ÉÄܵķûºÅÐÅÏ¢
kM
ʹÓà DML ¸ñʽÏÔʾ¶ÑÕ»ÐÅÏ¢
.kframes
ÉèÖÃÕ»³¤¶È£¬Ä¬ÈÏÊÇ20£¨0x14£©
.frame
.frame ÏÔʾµ±Ç°Ö¡
.frame # Ö¸¶¨Ö¡ºÅ
.frame /r [#] ÏÔʾ¼Ä´æÆ÷ÐÅÏ¢
.frame 2 ÏÔʾ֡ºÅ 2 µÄÐÅÏ¢
.frame /r 0d ÏÔʾ 0 Ö¡ÖмĴæÆ÷ÐÅÏ¢

!uniqstack
!uniqstack ÏÔʾËùÓÐÏ̵߳ÄÕ»ÐÅÏ¢
!uniqstack [b|v|p] [n] b=ǰ3¸ö²ÎÊý£»v=FPOÐÅÏ¢£»p=ËùÓвÎÊý£»n=Ö¡ºÅ
!uniqstack -? ÏÔʾ°ïÖú

!findstack
!findstack Symbol ÕÒµ½°üº¬·ûºÅ»òÄ£¿éµÄÕ»
!findstack Symbol [0|1|2] 0=½öÏÔʾÏß³ÌID£»1=Ïß³ÌIDºÍÖ¡£»2=È«²¿µÄÏß³ÌÕ»£»
!findstack -? ÏÔʾ°ïÖú
!findstack clr 2 ÏÔʾ°üº¬ clr µÄËùÓÐÕ»µÄÐÅÏ¢

À©Õ¹°ïÖúÃüÁî
!Ext.help
³£¹æÀ©Õ¹ÃüÁî°ïÖú

!Exts.help

!Uext.help
Óû§Ì¬Ä£Ê½À©Õ¹ÃüÁî°ïÖú

!Ntsdexts.help
Óû§Ì¬À©Õ¹ÃüÁî°ïÖú£¨OSÏà¹Ø£©

!logexts.help
ÈÕÖ¾Ïà¹ØÀ©Õ¹

!clr10\sos.help
µ÷ÊÔÍйܴúÂë
!wow64exts.help
wow64µ÷ÊÔÆ÷À©Õ¹
!Wdfkd.help
ÄÚºË̬Çý¶¯¿ò¼ÜÀ©Õ¹
!Gdikdx.help
ͼÐÎÇý¶¯À©Õ¹
!NAME.help
ÏÔʾÈκΠNAME Ãû³ÆµÄÀ©Õ¹ÃüÁîµÄ°ïÖú
ÈÕÖ¾À©Õ¹ÃüÁî
!logexts.help
ÏÔʾËùÓÐÈÕÖ¾À©Õ¹ÃüÁî
!loge
!loge [dir] ´ò¿ªÈÕÖ¾¹¦ÄÜ£¬¿ÉÑ¡ÅäÖÃÊä³öĿ¼
!logi
³õʼ»¯ÈÕÖ¾¹¦ÄÜ
!logd
¹Ø±ÕÈÕÖ¾¹¦ÄÜ
!logo
!logo ÁгöÈÕÖ¾ÅäÖÃÐÅÏ¢
!logo [e|d] [d|t|v] ´ò¿ª»ò¹Ø±ÕÈÕÖ¾£¬d=µ÷ÊÔÆ÷£¬t=Îı¾Îļþ£¬v=ÏêϸÐÅÏ¢
!logc
!logc ÁгöËùÓÐÈÕÖ¾ÀàÐÍ
!logc p # Áгö # ÖеÄÈÕÖ¾ÀàÐÍ
!logc [e|d] * ´ò¿ª»ò¹Ø±ÕËùÓÐÈÕÖ¾ÀàÐÍ
!logc [e|d] # [#] [#] ´ò¿ª»ò¹Ø±ÕÈÕÖ¾ÀàÐÍ #
!logb
!logb p ´òÓ¡»º³åÇøÐÅÏ¢ÖÁµ÷ÊÔÆ÷
!logb f ˢлº³åÇøÄÚÈÝÖ®ÈÕÖ¾Îļþ
!logm
!logm ÏÔʾģ¿éµÄ°üº¬»òÆÁ±ÎÁбí
!logm [i|x] [DLL] [DLL] Ö¸¶¨Ä£¿éµÄ°üº¬»òÆÁ±ÎÁбí
¡¾Ê¹Óý̡̳¿
½ÓÏÂÀ´ÎÒ»á step by step ½â˵ Symbol µÄÉ趨·½·¨
Ê×ÏÈÕâÀï¼ÙÉèÄãÒѾ°Ñ WinDBG °²×°ºÃÁË
Ò». Æô¶¯ WinDBG áá, Äã»áÔÚÏÂÃæÃüÁîÁп´µ½ Debuggee not connected
ºÃ~, ¿ªÊ¼½¨Á¢Á¬½á [File] -> [Kernel Debug] , Ö®áá»á³öÏÖ¶Ô»°ºÐ
¶Ô»°ºÐÀïÃæÓиö Tab Control, µãÑ¡ Local ҳǩ, È»áá°´ [È·¶¨]
¼ÙÈçÄãÊǵÚÒ»´ÎÆô¶¯, ¿ÉÄÜ»á³öÏÖÒ»¸ö¶Ô»°ºÐ, »áÎÊÄãÒª²»Òª´¢´æ workspace,
°´ [Yes], ÕâÑù¾ÍÍê³É½¨Á¢ÁËÒ»¸ö Debuggee µÄÁ¬½á
ÕâʱÄã¿ÉÒÔÊäÈë version, ¿´Ò»ÏÂϵͳµÄÏà¹Ø×ÊѶºÍ Debugger µÄ°æ±¾
¶þ. ½ÓÏÂÀ´Òª¸ã¶¨ SymBol É趨, Õⲿ·ÖºÜÖØÒª, ÄãÒ»¶¨ÒªÁ˽â
´Ó [File] -> [Symbol File Path], »òÕß°´ Ctrl + S,
Ö®áá»á³öÏÖÒ»¸öÒÔ Symbol Search Path Ϊ Title µÄ¶Ô»°ºÐ, ¿ªÊ¼É趨 SymBol ·¾¶
ÊäÈë C:\Windows\Symbols;SRV*C:\Windows\Symbols*http://msdl.microsoft.com/download/symbols
È»áá°´ [È·¶¨]
ÎÒÏȽâ˵Õâ¸öÊäÈëµÄÓÃÒâ, Ëü·Ö³ÉÁ½²¿·Ö
Ò»¸öÊÇ C:\Windows\Symbols
ÁíÒ»¸öÊÇ SRV*C:\Windows\Symbols*http://msdl.microsoft.com/download/symbols
Á½¸öÒԷֺŠ";" ¸ô¿ªµÄ
ÆäÓÃÒâ¾ÍÊǸæËß WinDBG Èç¹ûÄãÔÚ C:\Windows\Symbols Õâ¸öĿ¼ÏÂÕÒ²»µ½ Symbol,
ÄÇ÷á¾Íµ½ http://msdl.microsoft.com/download/symbols ÕâÍøÖ·È¥ÕÒ,
²¢ÇÒ°ÑÕÒµ½µÄ Symbol File ÏÂÔØµ½ C:\Windows\Symbols Ŀ¼µ×Ï (SRV*C:\Windows\Symbols*)
ÕâÑù¾ÍÍê³ÉÁË Symbol File Path µÄÉ趨ÁË
ÓÐʱºò»áÓкܶàÆäËü×´¿ö, ÀýÈç WinDBG »á˵ÕÒ²»µ½Ñ½,
½â¾ö·½·¨¾ÍÊÇ reload (Reload Module)
ÔÚ Symbol File Path µÄÉ趨¶Ô»°ºÐÏÂÃæÓиö reload µÄ CheckBox,
°ÑËü´ò¹´, È»áá°´ [È·¶¨], ÈÃËü×Ô¶¯ÖØÐÂÔØÈë
ÁíÍâ, ÄãÒ²¿ÉÒÔʹÓÃÄÚ½¨Ö¸Áî .reload , ¿ìËÙµÄ Reload Module
Èý. ½ÌÄãÈçºÎÒ»´ÎÐÔµÄÍêÕûÏÂÔØËùÓÐ Symbol Files
ƽ³£ÎÒÃǶ¼Ö»ÊÇÔڲ鿴 Ntdll µÄº¯Êý, »òÕ߲鿴 Service Descriptor Table
ÕâÑù WinDBG Ö»»áÏÂÔØ ntdll.pdb ºÍ ntkrnlmp.pdb »òÕß win32k.pdb µ½ C:\Windows\Symbol
µ«ÆäËüµÄÄØ, ÍòÒ»ÄÄÌìÒªÓõ½¶ø Micro$oft ÓÖÍ£Ö¹Ö§Ô®Ôõ°ì, àÅ~°ÑËüÒ»´ÎͨͨÏÂÔØµ½ C:\Windows\Symbol ºÃÁË
Æô¶¯ DOS Command Line, Ò²¾ÍÊÇ cmd.exe
[¿ªÊ¼] -> [Ö´ÐÐ] -> ÊäÈë cmd -> °´ [È·¶¨] , »á³öÏÖ DOS µÄ Command Line ÊÓ´°
ÏÈÌø½ø WinDBG °²×°Ä¿Â¼
ÔÚ DOS ÊÓ´°ÊäÈë cd C:\Program Files\Debugging Tools for Windows (x86), °´ [Enter]
È»ááÔÙÊäÈë
symchk.exe /r C:\Windows\system32 /s SRV*C:\Windows\Symbols*http://msdl.microsoft.com/download/symbols
°´ [Enter] ááËü¾Í¿ªÊ¼×Ô¶¯É¨ÃèºÍÏÂÔØ C:\Windows\system32 Ŀ¼Ïµĵµ°¸µÄ Symbol File µ½ C:\Windows\Symbols
µ±È»ÄãÒ²¿ÉÒÔɨÃèºÍÏÂÔØÆäËûĿ¼ÏÂϵͳµµ°¸µÄ Symbol Files
ÀýÈçɨÃè .Net µÄµµ°¸, ÔÚ DOS µÄCommand Line ÊÓ´°ÊäÈë
symchk.exe /r C:\WINDOWS\Microsoft.NET\Framework /s SRV*C:\Windows\Symbols*http://msdl.microsoft.com/download/symbols
µ«²»½¨Òé·ÅÔÚͬһ¸öĿ¼, ½¨Òé¸Ä·Åµ½ C:\Windows\NetSymbols
Ö¸Áî¾Í±ä³É
symchk.exe /r C:\WINDOWS\Microsoft.NET\Framework /s SRV*C:\Windows\NetSymbols*http://msdl.microsoft.com/download/symbols
WinDBGʹÓ÷½·¨ÈëÃÅ
Ê×ÏÈÔÚ±¾Ò³ÏÂÔØ¸ÃÈí¼þ²¢ÇÒ°²×°
°²×°³É¹¦ºó£¬¿ÉÒÔÎÒ¿ªÊ¼²Ëµ¥£¬³ÌÐòÖÐÕÒµ½²¢Æô¶¯Windbg¡£

Æô¶¯ºóÖ÷½çÃæÈçͼ¡£

ÎÒÃÇ¿ÉÒÔÑ¡ÔñÎļþ£¨File£©²Ëµ¥¡·¸½¼Óµ½Ò»¸ö½ø³Ì¡£

ÔÚ´ò¿ªµÄÁбíÖÐÑ¡ÔñÄãÒªµ÷ÊԵĽø³Ì¡£

ÓеĽø³Ì¿ÉÄÜȨÏޱȽϸߣ¬ÎÞ·¨µ÷ÊÔ¡£

ÎÒÃÇʹÓùÜÀíÔ±Éí·ÝÔËÐÐWindbg¡£

ÔÙÑ¡Ôñ½ø³Ì£¬¸½¼Ó½ø³Ì¡£

»¹ÊDZ¨´í£¬Õâ˵Ã÷´Ë³ÌÐòÓÐ×ÔÎÒ±£»¤»úÖÆ£¬ÎÞ·¨½øÐе÷ÊÔ¡£

Èç¹û³ÌÐòûÓÐ×ÔÎÒ±£»¤£¬¸½¼Óºó»áÏÔʾÈçͼËùʾ¡£
