其实非常简单, 对一个架构而言, 有一条表示断点的指令, 比如IA-32中是0xCC
执行程序时, 代码指令会放入内存, 为了实现断点, 只需要找到需要打断点的指令的起始地址, 把该地址的任意一个字节改成0xCC(IA-32架构下), 程序执行到该指令时就会中断. 为了恢复执行, 只需把指令恢复原值即可.
调试原理机制
最新推荐文章于 2022-09-17 17:18:30 发布
其实非常简单, 对一个架构而言, 有一条表示断点的指令, 比如IA-32中是0xCC
执行程序时, 代码指令会放入内存, 为了实现断点, 只需要找到需要打断点的指令的起始地址, 把该地址的任意一个字节改成0xCC(IA-32架构下), 程序执行到该指令时就会中断. 为了恢复执行, 只需把指令恢复原值即可.