【发布时间】:2021-03-27 19:58:58
【问题描述】:
windbg 命令tct 执行程序直到到达call 指令或ret 指令。我想知道调试器如何在后台实现此功能。
我可以想象调试器会从当前指令中扫描指令以查找下一个 call 或 ret,并根据找到的指令设置断点。但是,我认为这不太可能,因为它还必须考虑到 jmp 指令,以便有任意数量的可能的 call 或 ret 指令必须设置这样的断点。
另一方面,我想知道 x86/x64 CPU 是否提供了一种功能,该功能会在 CPU 即将处理 call 或 ret 指令时引发异常以被调试器捕获。但是,我还没有听说过这样的功能。
【问题讨论】: