windbg学习

一.概况

1、符号文件 符号文件是什么?为什么我们以前用OllyDbg时不用设置符号文件?

其实我接触到这里的时候也十分的迷惑,甚至当时以为WinDbg只能调试有源码的文件。但后来,通过试验,逐步清楚了。 按我理解,符号就是用来标识程序的某个函数、变量或标记的东西。例如,通过载入有源代码和程序符号的目标文件,就可以轻松的使用 bp WinMain(我用来测试的程序的主函数)和bp 函数名(程序里的某个函数)。 那如果没有源代码怎么办?那只好使用微软的公共符号库。所谓公共符号库,可以理解成WinDbg对某些微软的系统函数(例如MessageBoxA)的识别,就像OllyDbg能够识别出MessageBoxA一样。虽然WinDbg能够识别出这些系统函数,但却显示的不明显(到后面会接触到)。 要设置公共符号文件,只需在设置符号文件的编辑框里输入路径即可。一般的输入形式为: SRV*g:\symbols*http://msdl.microsoft.com/download/symbols 意思大概就是从http://msdl.microsoft.com/download/symbols的地址里下载符号到g:\symbols(自己设置用来保存符号的目录)。然后设置完可以使用 .reload 命令WinDbg重新加载新的符号文件。具体的用法可以参考WinDbg的帮助文档。

2、工作空间

工作空间,是WinDbg用来保存当前工作环境的工具。例如可以保存当前工作的窗口布局、符号路径设置等,当再次载入时就不用重新设置。 例如,当前工作空间还没载入任何的调试文件,那么它就是WinDbg默认的打开环境。在这里的所有设置,包括窗口布局。符号源码路径设置等,都可以根据用户需要保存起来。WinDbg提供多种保存方式,包括 Save Workspace --- 直接保存(保存到默认文件) Save Workspace as --- 另存为(保存到用户指定的文件)

--------------------------------------------------------------------------------------------------------------------------------------

上面两种方式所说的文件其实并不是真正的文件,而是WinDbg在注册表里存放工作空间的项。 注册表的位置是:HKEY_CURRENT_USER\Software\Microsoft\Windbg\Workspaces

3、命令分类

Windbg主要分为3大类的调试命令:

标准命令 (Standard Command): 这类命令对于所有的调试目标都试用,比如常见的k命令;

元命令 (Meta-Command): 这类目标主要针对特定的目标所做的扩展命令,比如常见的.sympath命令。因为这类命令前面都有一个.,所以也叫作Dot-Command;

扩展命令 (Extension Command):标准命令和元命令都是Windbg内建的命令,而扩展命令是实现在动态加载的DLL中。这类命令前面都有一个!, 比如常用analyze -v.

 

二.命令

posted @ 2021-01-13 14:47  husterlong  阅读(135)  评论(0编辑  收藏  举报