岔斷點允許使用者在一特定的位置暫停程式的執行。岔斷點通常與程式碼一同顯示在 UI 中。您可以將一個 IBreakpointListener 新增至 IBreakpointManager 中 以便通知岔斷點是被新增或移除了。當程式執行時遇到了一個岔斷點,程式就會以岔斷點為理由暫停和觸發一個暫停的除錯事件。
定義特有除錯模型和啟動配置的外掛程式通常需要定義特有的岔斷點類型。您可以透過定義一個實作 IBreakpoint 的類別為特定的除錯模型實作岔斷點。
使用資源標記來實作岔斷點。呼叫資源標記可讓您以具名屬性形式建立與資源相關的 meta 資訊的關聯性。透過使用標記實作一個岔斷點, 除錯模型可以在編輯器中利用所有現存的標記功能,例如:持續、搜尋、新增、刪除和顯示。
為什麼在使用岔斷點時,標記是重要的呢?當您建立一個岔斷點類型,您也必須指定一個相關聯的標記類型。每個 org.eclipse.debug.core.breakpoints 的延伸都應該伴隨著 org.eclipse.core.resources.markers 的延伸。最好的示範是參考 Java 工具為 Java 岔斷點定義的延伸。
<extension id="javaBreakpointMarker" point="org.eclipse.core.resources.markers"> <super type="org.eclipse.debug.core.breakpointMarker"/> </extension> <extension id="javaExceptionBreakpointMarker" point="org.eclipse.core.resources.markers"> <super type="org.eclipse.jdt.debug.javaBreakpointMarker"/> <persistent value="true"/> <attribute name="org.eclipse.jdt.debug.core.caught"/> <attribute name="org.eclipse.jdt.debug.core.uncaught"/> <attribute name="org.eclipse.jdt.debug.core.checked"/> </extension>
<extension point="org.eclipse.debug.core.breakpoints"> <breakpoint id="javaExceptionBreakpoint" markerType="org.eclipse.jdt.debug.javaExceptionBreakpointMarker" class="org.eclipse.jdt.internal.debug.core.breakpoints.JavaExceptionBreakpoint"> </breakpoint> </extension>
除錯外掛程式會定義一個特殊類型的標記 org.eclipse.debug.core.breakpointMarker。 當您定義一個標記時,您應該使用這個標記來宣告它作為 Super 類型。如此將容許除錯模型藉由搜尋其標記的子類型,在程式檔內尋找所有可能的岔斷點。 在上述的範例中, javaExceptionBreakpointMarker 具有一個 Super 類型 javaBreakpointMarker, 其 Super 類型是 breakpointMarker。javaExceptionBreakpoint (定義在岔斷點延伸中)指定 javaExceptionBreakpointMarker 作為它的標記。
這所有一切代表的意義為何?當除錯程式碼獲得了程式碼資源,它便可以搜尋所有 Super 類型為 org.eclipse.debug.core.breakpointMarker 的標記。當尋找到所有的標記,便可以使用外掛程式登錄器將標記對應到相關聯的岔斷點類別。在這種方式中,平台除錯程式碼可以一般性地尋找所有已被設定在特定的程式檔中的岔斷點類型