如何在Visual Studio中进行调试?

use*_*729 9 debugging visual-studio

我可以将Visual Studio附加到可执行文件,然后调用我的断点.

引擎盖下发生了什么?什么机制允许我的断点开火?

Pat*_*ick 4

有两种机制可用于实现断点:

  • 硬件,通过在处理器中设置特殊寄存器。当遇到特殊寄存器中指示为断点的指令时,会抛出异常,并被调试器捕获。
  • 软件,通过将指令替换为“int 3”指令(请参阅http://en.wikipedia.org/wiki/INT_(x86_instruction))。“int 3”指令还会中断应用程序的流程,该流程被调试器捕获。为了继续应用程序,调试器将暂时放回原始指令。

请参阅http://en.wikipedia.org/wiki/Breakpoint了解更多信息。