为异常处理做准备,熟悉一下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参考手册,将会在课堂附件中提供下载

最新文章

  1. JS中 obj.style.left 与 obj.offsetLeft 的区别
  2. React与ES6(三)ES6类和方法绑定
  3. 高性能JS笔记2——数据存取
  4. Java for LeetCode 053 Maximum Subarray
  5. SQL中的charindex()方法
  6. JBoss错误
  7. ZOJ 3593 One Person Game
  8. BZOJ 3713
  9. 2016 系统设计第一期 (档案一)jQuery radio 取值赋值
  10. Android实例-操作摄像头(XE8+小米2)
  11. 聊聊Web App、Hybrid App与Native App的设计差异
  12. mac下mysql5.6字符集设置
  13. Java并发学习之中的一个——线程的创建
  14. 5分钟把任意网站变成桌面软件--windows版
  15. jQuery从小白开始---初始jQuery
  16. MongDB增删改查
  17. numpy-Randow
  18. [洛谷P4091][HEOI2016/TJOI2016]求和
  19. Tomcat 发布项目 conf/Catalina/localhost 配置 及数据源配置
  20. kafka_2.11-0.10.2.1中的auto.offset.reset

热门文章

  1. spring boot整合Thymeleaf的那些坑(spring boot 学习笔记之四)
  2. expander graph&random walk的一个小应用
  3. linux下用OCI库访问oracle数据库返回错误Cannot create OCI environment!;
  4. Java基础---泛型、集合框架工具类:collections和Arrays
  5. 【BUG】插入或者更新超过限制后写入数据库失败
  6. httpd2.4常用配置
  7. ios 初体验<UIButton 控件>
  8. 日期时间范围选择插件:daterangepicker使用总结
  9. Jquery 父级元素、同级元素、子元素
  10. C# 文件的上传和下载