2010-09-06 80 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