中断的应用--程序断点

1 断点的分类

断点分为程序断点和数据断点。

1.1 程序断点

程序断点就是指处理器的指令断点。通俗的说,就是当程序运行到某个函数的某个地方时就会停下来。程序断点又可以分为软件程序断点和硬件程序断点。
- 软件程序断点:处理器在运行的过程中如果遇到了一条非法或无效的指令,就会出现一个异常中断,软件程序断点就是利用这个特性实现的。当设置了一个软件程序断点时,调试工具就在我们所想设置的内存位置上放置一条非法的指令,同时将被替换的指令保留起来。当程序运行到了被非法指令替换的地方,处理器所产生的异常中断一方面在中断服务程序中恢复被替换的指令,另一方面将控制权交给调试工具。
- 硬件程序断点:硬件程序断点是通过配置处理器的断点寄存器的方式实现的。当处理器运行到断点寄存器所指示位置的指令时就会产生中断,调试工具通过中断是我们获得干预的机会。

1.2 数据断点

数据断点与硬件程序断点很相似,需要在处理器的寄存器中设置所监视数据变量的内存地址。当被监视的内存单元被修改时处理器将产生中断,调试工具利用这一中断让我们获得检查程序的机会。

2 中断的应用:程序断点

2.1 程序断点的基本概念

  • 断点指的是调试工具用于暂停代码执行的指令位置
  • 断点的实现原理为处理器的中断支持
    • 软件断点:利用非法指令异常产生中断实现
    • 硬件中断:利用中断寄存器的特性产生中断实现

2.2 程序断点的实现原理

  1. 获取原程序指定行对应的代码地址
  2. 把代码地址中的指令替换为中断触发指令
  3. 在中断服务程序中将控制权交给调试程序
  4. 调试程序读写源程序上下文信息
  5. 调试程序将代码地址中的指令还原
  6. 原程序从断点处继续向下执行
    这里写图片描述

修改记录


时间动作
2017.5.25首次上传

参考资料


唐老师 — 狄泰软件学院 — 十二月提升计划

李云 — 《专业嵌入式软件开发 全面走向高质量编程》

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值