WinDBG 使用教学(一)

这篇是第一章, 所以首重 WinDBG 基本设定, 没错, 就是 Symbol

    连基本的 Symbol 都没有设定, 要怎麽玩 Kernel 呀?

    接下来我会 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

你可能感兴趣的:(Windows操作系统)