重点介绍下读写域的使用方式。

软件调试笔记6 - 断点和单步执行: 硬件断点


软件调试笔记6 - 断点和单步执行: 硬件断点


硬件断点的设置方法

用户态的调试器如何设置硬件断点呢?答案是通过线程的上下文context数据来间接访问调试寄存器。CONTEXT结构用来保存线程的执行状态,在多任务系统中,操作系统通过让多个任务轮换运行来使多个程序同时运行。当一个线程被挂起,包括通用寄存器在内的线程上下文信息会被保存起来,当该线程恢复执行时,保存的内容又会被恢复到寄存器中。用户态调试器可以用SetThreadContext API来设置调试寄存器的函数调用过程。


硬件断点的优缺点

优点是不需要向代码中插入软件指令,缺点是数量限制,只有4个断点地址寄存器,另外是与CPU相关的,针对一个CPU的断点不一定适合其他的CPU。



相关文章:

  • 2021-06-07
  • 2021-11-06
  • 2021-10-01
  • 2021-10-20
  • 2021-08-21
  • 2022-03-03
  • 2021-12-09
  • 2021-10-25
猜你喜欢
  • 2021-11-20
  • 2021-08-03
  • 2022-12-23
  • 2021-12-25
  • 2021-12-05
相关资源
相似解决方案