2008-10-02 28 views
25

我很確定我以前見過這個,但我還沒有發現/記住如何去做。我想要一行代碼,當它從Delphi調試器執行時,我想讓調試器彈出來,就像那條線上有一個斷點。如何模擬代碼中的Delphi斷點?

喜歡的東西:

FooBar := Foo(Bar); 
SimulateBreakPoint; // Cause break point to occur in Delphi IDE if attached 
WriteLn('Value: ' + FooBar); 

希望這是有道理的。我知道我可以使用一個異常,但如果我想要的話,那將會花費更多的開銷。這是一些演示代碼。

在此先感謝!

回答

37

觸發從代碼調試器(據說,我沒有得心應手德爾福的副本嘗試):

asm int 3 end; 

看到這個頁面:

http://17slon.com/blogs/gabr/2008/03/debugging-with-lazy-breakpoints.html

+0

就是這樣。工作很棒!謝謝!現在我需要找到一種方法來提升中斷點的調用堆棧。 。 。 。 – 2008-10-02 05:36:20

+0

請注意捕捉EExternal,否則在調試器外部運行時會出現外部異常。 – 2008-10-02 06:40:17

13

由於安德烈亞斯Hausladen在對artice的評論中指出,Win32 API DebugBreak()函數不如DOS-ish,並且工作得很好。