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/