gpt4 book ai didi

debugging - 调试器如何从断点恢复?

转载 作者:行者123 更新时间:2023-12-03 06:46:02 27 4
gpt4 key购买 nike

假设一个调试器(常见的 x86 Ring3 调试器,如 olly、IDA、gdb...)设置了一个软件断点到虚拟地址0x1234。

这是通过将 0x1234 处的任何操作码替换为“0xCC”来完成的现在让我们假设被调试进程运行这个 0xCC 指令并引发软件异常和调试器捕获此异常。

调试器检查内存内容、寄存器并做一些事情......并且现在它想要恢复被调试进程。

据我所知,这是。从现在开始,这是我的假设。

调试器恢复原始操作码(已替换为0xCC)被调试者为了恢复执行。

调试器操纵被调试者 CONTEXT 的 EIP 来指向恢复指令。

调试器处理异常,现在,被调试者从断点恢复。

但是调试器希望保留断点。调试器如何管理这个?

最佳答案

直接回答原来的问题,来自GDB internals manual :

When the user says to continue, GDB will restore the original instruction, single-step, re-insert the trap, and continue on.

关于debugging - 调试器如何从断点恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15644180/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com