软件调试笔记2 - CPU的调试支持概览

这里以英特尔IA结构CPU为例,其提供的调试支持有:


1. IN3指令:又叫断点指令,当CPU执行到该指令时会产生断点异常,以便中断到调试器程序。它是软件断点的实现基础

2. 标志寄存器EFLAGS中的TF标志: 陷阱标志位,当为1时,CPU每执行完一条指令就产生调试异常,它是单步执行的实现基础

3. 调试寄存器DR0-DR7:用于设置硬件断点和报告调试异常的细节。

4. 断点异常(#BP):当INT3指令执行时,回导致此异常,CPU转到该异常的处理例程。异常处理例程进一步将异常分发给调试器软件。

5. 调试异常(#DB): 当除INT3指令以外的调试事件发生时,会导致此异常。

6. 任务状态段TSS的T标志:任务陷阱标志,当切换到设置了T标志的任务时,CPU回产生异常,中断到调试器。

7.分支记录机制:用来记录上一个分支,中断和异常的地址等信息

8. 性能监视:用于监视和优化CPU及软件的执行效率

9. JTAG支持:可以与JTAG调试器一起工作来调试单独靠软件调试器无法调试的问题。


除了对调试功能的直接支持,CPU的很多核心机制也为实现调试功能提供了硬件基础,比如异常机制,保护模式和性能监视功能等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值