2010-09-06 124 views
9

我可以将Visual Studio附加到可执行文件,然后调用我的断点。调试如何在Visual Studio中工作?

这是怎么回事?什么机制允许我的断点开火?

+0

“,然后该可执行文件被调用”?你的意思是你的断点被解雇了?当你附加时,那个可执行文件*已经被调用,这就是你能够附加的原因。 :) – 2010-09-07 00:06:04

+0

是的,我想知道我的bp是如何被解雇的。 – user198729 2010-09-07 00:07:38

+0

阅读OP的评论,我看到我编辑他的问题很差。改变。 – 2010-09-07 00:12:30

回答

4

存在可以被用来实现断点两种机制:

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

查看http://en.wikipedia.org/wiki/Breakpoint了解更多信息。

+0

哪个是视觉工作室使用软,硬? – user198729 2010-09-07 13:55:00

+0

我确定Visual Studio使用硬断点(我曾收到错误消息:硬件不支持监视请求的字节数)。不确定软中断点,但我认为VS也使用这些。 – Patrick 2010-09-07 15:17:38