2016-11-21 66 views
0

我是BlackBox組件生成器(http://blackboxframework.org/)的新手,我目前正在理解與「標準」編譯語言(例如C,Pascal)差異的過程。 )。教程非常有幫助。Blackbox組件生成器(Component Pascal)中的運行時調試器

我有一個問題是運行時調試器的存在(或不存在)。我發現斷點對追蹤錯誤和開發代碼非常有用。但是,我找不到如何在BlackBox組件生成器中設置斷點。事實上,我甚至不知道這是否可能。

BlackBox Component Builder中是否存在運行時調試器? 是否可以在代碼執行中設置斷點?

在此先感謝!

回答

0

黑匣子在發展戰略不同的方法:

黑盒調試器是一個「事後」調試器和「運行時」調試器之間的交叉。它在命令陷入後(死後)被調用,但它不會導致BlackBox環境(運行時)的終止。一些功能,例如Info-> View State命令,可以從所選視圖開始跟蹤數據結構,通常只與運行時調試器相關聯。

面向對象程序的典型情況是,它們的控制流可能會變得非常複雜且難以遵循。因此,在語句(單步)的程序語句之後,通過消息發送或過程調用在實踐中對於調試大型系統來說是不切實際的。相反,BlackBox使用更有效的調試策略:

讓錯誤儘快顯現。

而不是等待發生某種錯誤,然後試圖找回錯誤原因的方式,試圖將錯誤標記爲儘可能接近其原因。這是真正節省調試時間的唯一方法。語言實現遵循相同的策略,通過在訪問數組時檢查索引溢出,在取消引用指針等時檢查NIL訪問等。除了這些內置檢查,Component Pascal還提供了標準過程ASSERT,它允許測試任意條件。如果違反條件,則會打開陷阱窗口。 BlackBox Component Framework的程序因此使用斷言,例如在程序開始時檢查其輸入是否有效。這可以防止非法輸入的程序可能對系統的其他部分造成任何損害。

這個防禦性編程策略在BlackBox的開發過程中一次又一次地證明了自己,並強烈建議進行嚴肅的開發工作。

參考開發子系統的用戶手冊從幫助系統,第5

陷阱窗口如下所示: BlackBox trap window for ObxTrap