岔斷點

岔斷點允許使用者在一特定的位置暫停程式的執行。岔斷點通常與原始碼一同顯示在 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。 當您定義一個標示元時,您應該使用這個標示元來宣告它作為超類型。如此將容許除錯模型藉由搜尋其標示元的子類型,在原始檔內尋找所有可能的岔斷點。 在上述的範例中, javaExceptionBreakpointMarker 具有一個超類型 javaBreakpointMarker, 其超類型是 breakpointMarkerjavaExceptionBreakpoint (定義在岔斷點延伸項目中)指定 javaExceptionBreakpointMarker 作為它的標示元。

這所有一切代表的意義為何?當除錯程式碼獲得了原始碼資源,它便可以搜尋所有超類型為 org.eclipse.debug.core.breakpointMarker 的標示元。當尋找到所有的標示元,便可以使用外掛程式登錄器將標示元對應到相關聯的岔斷點類別。在這種方式中,平台除錯程式碼可以一般性地尋找所有已被設定在特定的原始檔中的岔斷點類型

 

Copyright IBM Corporation and others 2000, 2003.