处理器具有硬件调试器支持。停止命令、步进位和其他奇迹。所有这些通常在系统优先级级别上起作用。在较旧的处理器(80386 之前)中,有一个步进位,但还没有硬件优先级。那里的调试器在用户模式下工作。但是,操作系统在用户模式下工作。:-) 当然,除非 DOS 可以称为操作系统。
UPD1:
请更详细
那是很久以前的事。有关更多详细信息,您需要阅读处理器硬件架构的描述。此外,调试器支持现在可用于所有或多或少自尊的处理器,例如 ARM 和其他处理器。此支持在较旧的 INTEL 51 系列单芯片处理器中不可用。
当我这样做时,每个人都在 DOS 下运行,调试器和程序都在实模式下运行。然后在处理器指令集中有一个单字节的软件中断命令。如果用户在程序中设置了断点,那么调试器会修改用户的程序,将这个相同的单字节程序中断命令写入汇编程序序列(实现 Sish 命令)的开头。当(如果)程序通过这一点时,就会发生程序中断,由调试器处理。它停止用户程序,读取所有通用寄存器,以及程序员感兴趣的其他信息,例如堆栈的内容、段寄存器、内存段等。然后他把所有这些信息都塞进窗户里,然后停了下来。当用户遇到断点时,
在处理器的标志寄存器中还有一个所谓的 T 位。如果将一个单元写入该 T 位,则处理器会在执行每条指令后生成一个带有自己独立向量的 T 中断。此 T 中断也由调试器处理,可用于单步执行程序。在这个中断上,调试器还收集了有关处理器状态的所有信息,并在不同的窗口中以人性化的形式呈现这些信息。
处理器具有硬件调试器支持。停止命令、步进位和其他奇迹。所有这些通常在系统优先级级别上起作用。在较旧的处理器(80386 之前)中,有一个步进位,但还没有硬件优先级。那里的调试器在用户模式下工作。但是,操作系统在用户模式下工作。:-) 当然,除非 DOS 可以称为操作系统。
UPD1:
那是很久以前的事。有关更多详细信息,您需要阅读处理器硬件架构的描述。此外,调试器支持现在可用于所有或多或少自尊的处理器,例如 ARM 和其他处理器。此支持在较旧的 INTEL 51 系列单芯片处理器中不可用。
当我这样做时,每个人都在 DOS 下运行,调试器和程序都在实模式下运行。然后在处理器指令集中有一个单字节的软件中断命令。如果用户在程序中设置了断点,那么调试器会修改用户的程序,将这个相同的单字节程序中断命令写入汇编程序序列(实现 Sish 命令)的开头。当(如果)程序通过这一点时,就会发生程序中断,由调试器处理。它停止用户程序,读取所有通用寄存器,以及程序员感兴趣的其他信息,例如堆栈的内容、段寄存器、内存段等。然后他把所有这些信息都塞进窗户里,然后停了下来。当用户遇到断点时,
在处理器的标志寄存器中还有一个所谓的 T 位。如果将一个单元写入该 T 位,则处理器会在执行每条指令后生成一个带有自己独立向量的 T 中断。此 T 中断也由调试器处理,可用于单步执行程序。在这个中断上,调试器还收集了有关处理器状态的所有信息,并在不同的窗口中以人性化的形式呈现这些信息。
我不知道它现在是如何完成的,但我认为它也是这样的。除了现在,当然,调试器运行在系统处理器模式,而用户程序运行在用户处理器模式。