Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1293151
  • 博文数量: 196
  • 博客积分: 4141
  • 博客等级: 中将
  • 技术积分: 2253
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-21 20:04
文章存档

2019年(31)

2016年(1)

2014年(16)

2011年(8)

2010年(25)

2009年(115)

分类: 系统运维

2009-03-21 21:31:45

控制执行

调试器的核心是它的进程控制和运行控制。为了能够调试程序,调试器必须能够对被调试程序进行状态设置,断点设置,运行进程,终止进程。

控制执行主要包含一下几个功能:

1.    创建被调试程序

调试器做的第一件工作,就是创建被调试程序。一般通过两种手段:一种是为调试程序创建被调试进程,另一种是将调试器附到被调试进程上。

下面是通用的调试事件:



下图是断点设置的使用:


2.    附到被调试进程

当一个进程发生错误异常,并且在被刷出(内存刷新)内存的时候,允许调试器挂到出错进程以此来检查内存镜像。这个时候,用户不能再继续执行进程。

3.    设置断点

设置断点的功能是在可执行文本中插入特殊的指令来实现的。当程序执行到该特殊指令的时候,就产生陷阱,陷到操作系统。

4.    使被调试程序运行

当调试中断产生的时候,调试器属于激活进程,而被调试程序属于未激活进程。调试器产生一个系统中断请求恢复被调用函数的执行,操作系统对被调试程序进行上下文切换,恢复被调用程序的现场状态,然后执行被调用程序。

执行区间的调试事件生成类型:

l      断点,单步调试事件

l      线程创建/删除事件

l      进程创建/删除事件

l      检测点事件

l      模块加载/卸载事件

l      异常事件

l      其他事件

阅读(2337) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~