断点恢复执行时的设置
来源:互联网 发布:内网22的端口怎么设置 编辑:程序博客网 时间:2024/06/15 15:34
当用户结束分析希望恢复被调试程序执行时,调试器通过调试API通知调试子系统,这会导致系统内核的异常分发函数返回到异常处理例程,然后异常处理例程通过IRET/IRETD指令触发一个异常返回动作,使CPU恢复执行上下文,从发生异常的位置继续执行。注意,这时的程序指针是指向断点所在那条指令的,此时刚才的断点指令已经被替换成本来的指令,于是程序会从断点位置的原来指令继续执行。
这里有一个问题,前面我们说当断点命中中断到调试器时,调试器会把所有断点处的INT 3指令恢复成本来的内容。因此,在用户发出了恢复执行命令后,调试器在通知系统真正恢复程序执行前,调试器需要将断点列表中的所有断点再落实一遍。但是对于刚才命中的这个断点需要特别对待,试想如果把这个断点处的指令也替换为INT 3,那么程序一执行便又触发断点了。但是如果不替换,那么这个断点便没有被落实,程序下次执行到这里时就不会触发断点,而用户并不知道这一点。对于这个问题,大多数调试器的做法都是先单步执行一次。也就是说,先设置单步执行标志(下一节将详细讨论),然后恢复执行,将断点所在位置的指令执行完。因为设置了单步标志,所以,CPU执行完断点位置的这条指令后会立刻再中断到调试器中,这一次调试器不会通知用户,会做一些内部操作后便立刻恢复程序执行,而且将所有的断点都落实(使用INT 3替换)。如果用户在恢复程序执行前,已经取消了当前的断点,那么就不需要先单步执行一次了。
- 断点恢复执行时的设置
- 在程序中设置读、写、执行的硬件断点
- 全局断点的设置
- 断点的设置方法
- eclipse debug进去断点是提示是否进入debug视图的设置恢复
- OllyDbg 设置断点的操作方法
- OllyDbg 设置断点的操作方法
- OllyDbg 设置断点的操作方法
- 破解常用的断点设置
- 关于xcode 断点的设置
- VS2012设置断点的方法
- js设置断点的问题
- vs2008 无法设置断点&设置内存断点的方法
- 调试时设置条件断点
- 调试时设置条件断点
- eclipse-断点调试-设置断点选中行的背景颜色
- eclipse 有的地方打不上断点,设置的断点有斜杠
- eclipse的异常断点和条件断点设置方式
- c#创建Dll动态链接库、C#使用动态链接库
- 在表空间之间移动数据对象
- __setup宏简介
- powerdesigner逆向工程生成PDM时的列注释解决方案
- System.getProperties()和System.getProperty()
- 断点恢复执行时的设置
- sencha-touch-1.1如何隐藏一个工具条
- ScheduledThreadPoolExecutor
- jdk 环境变量配置
- JSTL formatNumber 数字、货币格式化
- andorid webview
- Proxy 模式(二)
- ETHERNET数据包格式( IP & UDP & ICMP & ARP )
- 页面刷新或者回发后DIV的滚动条位置不变!