为异常处理做准备,熟悉一下WinDbg工具
马上开始异常处理第二讲,但是在讲解之前,还有熟悉一下我们的WinDbg工具,当然你如果熟悉这个工具,那么就可以不用看了.
一丶熟悉WinDbg界面
刚开始打开WinDbg就是这个界面,现在我们打开一个32位程序,打开File菜单,看下内容
第一个,调试源文件,一般用不到,每个编译器都在带调试器,自己用自己的就好
第二个,打开一个可执行文件,很常用
第三个,附加一个进程,这个和OD很类似,当程序打开之后可以附加
现在我们用第二个,打开一个我们的可执行程序(注意,32位程序就用x86 的winDbg,64反之)
打开之后就一个命令窗口,但是我们可以通过下面的快捷键设置
记住快捷键:
ALT - 9 的快捷键
ALT 1 命令行
ALT 2 监视窗口
ALT 3 本地变量
ALT 4 寄存器
ALT 5 内存
ALT 6 调用堆栈
ALT 7 反汇编窗口
ALT 8 打开一个记录本
ALT 9 进程和线程
CTRL N 命令浏览器
二丶熟悉WinDbg调试的时候的注意事项以及常用快捷键
1.注意符号路径的设置,如果不设置,那么你反汇编的时候,将看不到WinDbg翻译出来的函数了
这个是OD做不到的,你调用什么函数,WinDbg都能知道,归功于符号路径的设置
CTRL S 打开符号路径设置,或者在菜单点击
输入网址,也就是服务器地址,WinDbg将默认的链接微软服务器下载
srv*d:symbolslocal*http://msdl.microsoft.com/download/symbols
其中的d:symbolsloca,你可以随便改动,就是符号路径下载的位置是哪里.
2.常用调试手法
WinDbg和OD不一样,快捷键也有区别了
它的快捷键适合VC 6.0的一样
F9 设置断点
F5 运行
CTRL shift F5 重新运行(相当于OllyDbg中的ctrl F2)
Shift F5 停止调试
F10 单步一次
F11 遇到函数进去,步进一次
常用的怎么多.
三丶WinDbg常用的命令
WinDbg常用的命令很多.具体可以搜索MSDN这里只简单列举一下
1.断点指令
bp 命令,设置断点
bm 命令,设置执行符号断点,可以多个符号下段点
ba 命令,设置内存访问断点
bl 命令,查看断点列表
bc * 清除所有断点.
2.反汇编和汇编指令
反汇编:
U 指令,向下反汇编
UB指令,向上反汇编
UF 反汇编整个函数
汇编:
a指令,可以写入汇编代码
3.栈分析指令
查看类型指令,默认显示所有类型,加餐食 -b 显示子类型信息
dt
或者
dt -b
查看栈指令
k指令单独使用时,之显示栈地址、返回地址、函数名信息。如果需要其他信息需要使用参数。常见的有 b 显示函数调用时的前三个参数 c 只显示函数名 p 显示函数的所有参数,包括参数的名字、类型、值。 v 显示帧指针遗漏(FPO)信息。在基于x86处理器,显示器还包括调用约定信息 n 显示调用栈的每帧编号 f 显示调用栈的每帧占用字节数 默认情况下使用k显示当前线程栈,如果加上线程命令前缀,可以查看某个线程栈,如~* k查看所有线程栈
等等
具体可以参考MSDN的用法,或者WinDbg参考手册,将会在课堂附件中提供下载
课堂资料下载:
链接:http://pan.baidu.com/s/1qYc9P7m 密码:6oa8