中斷點相關的方法
偵錯引擎 (DE) 必須支援中斷點的設定。 Visual Studio 偵錯支援下列中斷點類型:
繫結
透過 UI 要求並成功繫結至指定的程式碼位置
待定
透過 UI 要求,但尚未繫結至實際指令
討論
例如,當指令尚未載入時,就會發生暫止斷點。 載入程式碼時,暫止中斷點會嘗試繫結到指定位置的程式碼,也就是在程式碼中插入中斷指令。 事件將傳送到工作階段偵錯管理員 (SDM),以指示成功繫結或通知發生繫結錯誤。
暫止中斷點也會管理它自己的內部對繫結中斷點清單。 一個暫止中斷點可能會導致在程式碼中插入許多中斷點。 Visual Studio 偵錯 UI 顯示暫止中斷點及其對應繫結中斷點的樹狀結構檢視。
建立和使用暫止中斷點需要實作 IDebugEngine2::CreatePendingBreakpoint 方法,以及 IDebugPendingBreakpoint2 介面的下列方法。
方法 | 描述 |
---|---|
CanBind | 判斷指定的暫止中斷點是否可以繫結至程式碼位置。 |
Bind | 將指定的暫止中斷點繫結至一或多個程式碼位置。 |
GetState | 取得暫止中斷點的狀態。 |
GetBreakpointRequest | 取得用來建立暫止中斷點的中斷點要求。 |
啟用 | 切換暫止中斷點的啟用狀態。 |
EnumBoundBreakpoints | 列舉從暫止中斷點繫結的所有中斷點。 |
EnumErrorBreakpoints | 列舉暫止中斷點所產生的所有錯誤中斷點。 |
刪除 | 刪除暫止中斷點,以及從中繫結的所有中斷點。 |
若要列舉繫結中斷點和錯誤中斷點,您必須實作 IEnumDebugBoundBreakpoints2 和 IEnumDebugErrorBreakpoints2 的所有方法。
繫結至程式碼位置的暫止中斷點需要實作下列 IDebugBoundBreakpoint2 方法。
方法 | 描述 |
---|---|
GetPendingBreakpoint | 取得包含中斷點的暫止中斷點。 |
GetState | 取得繫結中斷點的狀態。 |
GetBreakpointResolution | 取得描述中斷點的中斷點解析。 |
啟用 | 啟用或停用中斷點。 |
刪除 | 刪除繫結中斷點。 |
解析和要求資訊需要實作下列 IDebugBreakpointResolution2 方法。
方法 | 描述 |
---|---|
GetBreakpointType | 取得解析所表示之中斷點的類型。 |
GetResolutionInfo | 取得描述中斷點的解析資訊。 |
解析繫結期間可能發生的錯誤,需要實作下列 IDebugErrorBreakpoint2 方法。
方法 | 描述 |
---|---|
GetPendingBreakpoint | 取得包含錯誤中斷點的暫止中斷點。 |
GetBreakpointResolution | 取得描述錯誤中斷點的中斷點錯誤解析。 |
解析繫結期間可能發生的錯誤也需要下列 IDebugErrorBreakpointResolution2 方法。
方法 | 描述 |
---|---|
GetBreakpointType | 取得中斷點的類型。 |
GetResolutionInfo | 取得斷點的解析資訊。 |
在中斷點檢視原始程式碼時,您必須實作 IDebugStackFrame2::GetDocumentContext 和/或 IDebugStackFrame2::GetCodeContext 的方法。