在我的调试器中,我将特定的内存地址设置为0xCC(int3),并且执行时其中一个线程到达此地址。抛出异常。处理异常时i将IP寄存器减去0xCC之前的一个指令,并用原始字节替换0xCC。我还在线程上下文中设置了标志,在执行一条指令后抛出异常 - 我需要设置回0xCC字节。
问题: 代码正确执行,但我意识到可能存在错误。收到异常后,我在线程中设置了原始字节和设置标志,以便在执行一条指令后立即返回调试器(它允许我设置回int3)。这听起来不错,但我检测到在原始字节执行后另一个线程也执行此指令而不抛出异常(我认为它可能与线程切换有关)。