调试器支持

【勇芳软件工作室】汉化HomePreviousNext

系统对用户模式异常的处理提供了对复杂调试器的支持。如果正在调试发生异常的进程,系统将生成调试事件。如果调试器使用WaitForDebugEvent函数,则调试事件会导致该函数返回一个指向DEBUG_EVENT结构的指针。此结构包含调试器可用于访问线程的上下文记录的进程和线程标识符。该结构还包含一个包含异常记录副本的EXCEPTION_DEBUG_INFO结构。

系统搜索异常处理程序包括两次尝试通知进程的调试器。第一个通知尝试为调试器提供了处理断点或单步异常的机会。然后,在执行任何异常处理程序之前,用户可以发出调试器命令来处理进程的环境。仅当系统无法找到处理异常的基于帧的异常处理程序时,才会发生通知调试器的第二个尝试。

在每次通知尝试时,调试器使用ContinueDebugEvent函数将控制权返回给系统。在返回控件之前,调试器可以处理异常并适当修改线程状态,也可以选择不处理异常。使用ContinueDebugEvent,调试器可以指示它已经处理了异常,在这种情况下,机器状态被恢复,线程执行在发生异常的时候继续执行。调试器还可以指示它没有处理异常,这导致系统继续搜索异常处理程序。