Windbg 基础
符号表设置
- 快捷指令
ctrl+s
符号表路径设置:
E:\DumpAnalysis\special_symbols; srv*E:\DumpAnalysis\some_symbols* \\1.1.1.1\SomeSymbols; srv*E:\DumpAnalysis\ms_symbols* \\2.2.2.2\MicrosoftSymbols; srv*\\2.2.2.2\MicrosoftSymbols* https://msdl.microsoft.com/download/symbols
- 设置注释,第一行 注释表示从 本地目录中取符号表信息,第二行和第三行 表示从远程地址
\\1.1.1.1\SomeSymbols
取符号表信息,并存储在本地目录E:\DumpAnalysis\some_symbols
中,第四则表示从远程地址https://msdl.microsoft.com/download/symbols
中取符号表信息,并存储在远程地址\\2.2.2.2\MicrosoftSymbols
中使用,不同的配置之间使用;号进行分隔
符号表加载
- 这个命令将启用符号表的详细输出。
!sym noisy
这个命令将关闭符号表的详细输出。
!sym quiet
- 这个命令将重新加载所有的符号表
.reload /f
- 这个命令将重新加载特定模块 module 的符号表
.reload /f module
常用的一些指令
!analyze -v
自动加载符号表分析dmp文件k
,kb
,kvn
显示当前线程的堆栈k
命令:用于显示当前线程和堆栈跟踪中的函数调用。它可以显示每个函数调用的参数和局部变量。k
命令是最基本的调试命令。kb
命令:与k命令类似,但它还会显示函数调用的调用者信息。kvn
命令:与k命令类似,但它可以显示函数调用的详细信息,包括完整的符号信息和源代码行号。它还可以显示函数调用的参数和局部变量的值。
- 如果使用32位的windbg,windbg加载完dump文件后,窗口会显示wow64cpu,表示是64位进程,需要切换到64位环境:
.load wow64exts !sw
- 切换调用帧当前线程的第X帧
kvn .frame x
!peb
格式化输出PEB信息lm
查看所有模块,lmvm xxx
查看xxx模块的详细信息,xxx模块不要带后缀名?
打印所有标准命令,.help
打印所有元命令,.extmatch *
列出所有扩展命令
其他资料
- 中文在线帮助:http://www.dbgtech.net/windbghelp/index.html
- 下载和安装教程:https://learn.microsoft.com/zh-CN/windows-hardware/drivers/debugger/