Metody związane z punktem przerwania
Aparat debugowania (DE) musi obsługiwać ustawienie punktów przerwania. Debugowanie programu Visual Studio obsługuje następujące typy punktów przerwania:
Bound
Żądane za pośrednictwem interfejsu użytkownika i pomyślnie powiązane z określoną lokalizacją kodu
Oczekiwanie
Żądane za pośrednictwem interfejsu użytkownika, ale nie są jeszcze powiązane z rzeczywistymi instrukcjami
Dyskusja
Na przykład oczekujący punkt przerwania występuje, gdy instrukcje nie zostały jeszcze załadowane. Po załadowaniu kodu oczekujące punkty przerwania próbują powiązać kod w określonej lokalizacji, czyli wstawić instrukcje przerwania w kodzie. Zdarzenia są wysyłane do menedżera debugowania sesji (SDM), aby wskazać pomyślne powiązanie lub powiadomić, że wystąpiły błędy powiązania.
Oczekujący punkt przerwania zarządza również własną wewnętrzną listą odpowiednich powiązanych punktów przerwania. Jeden oczekujący punkt przerwania może spowodować wstawienie wielu punktów przerwania w kodzie. Interfejs użytkownika debugowania programu Visual Studio przedstawia widok drzewa oczekujących punktów przerwania i odpowiadających im powiązanych punktów przerwania.
Tworzenie i używanie oczekujących punktów przerwania wymaga implementacji metody IDebugEngine2::CreatePendingBreakpoint , a także następujących metod interfejsów IDebugPendingBreakpoint2 .
Metoda | opis |
---|---|
CanBind | Określa, czy określony oczekujący punkt przerwania może wiązać się z lokalizacją kodu. |
Bind | Wiąże określony oczekujący punkt przerwania z co najmniej jedną lokalizacją kodu. |
GetState | Pobiera stan oczekującego punktu przerwania. |
GetBreakpointRequest | Pobiera żądanie punktu przerwania używane do utworzenia oczekującego punktu przerwania. |
Włączone | Przełącza włączony stan oczekującego punktu przerwania. |
EnumBoundBreakpoints | Wylicza wszystkie punkty przerwania powiązane z oczekującym punktem przerwania. |
EnumErrorBreakpoints | Wylicza wszystkie punkty przerwania błędów, które wynikają z oczekującego punktu przerwania. |
Usuń | Usuwa oczekujący punkt przerwania i wszystkie powiązane z nim punkty przerwania. |
Aby wyliczyć powiązane punkty przerwania i punkty przerwania błędów, należy zaimplementować wszystkie metody IEnumDebugBoundBreakpoints2 i IEnumDebugErrorBreakpoints2.
Oczekujące punkty przerwania powiązane z lokalizacją kodu wymagają implementacji następujących metod IDebugBoundBreakpoint2 .
Metoda | opis |
---|---|
GetPendingBreakpoint | Pobiera oczekujący punkt przerwania zawierający punkt przerwania. |
GetState | Pobiera stan powiązanego punktu przerwania. |
GetBreakpointResolution | Pobiera rozwiązanie punktu przerwania, które opisuje punkt przerwania. |
Włączone | Włącza lub wyłącza punkt przerwania. |
Usuń | Usuwa powiązany punkt przerwania. |
Rozwiązanie i żądanie informacji wymagają implementacji następujących metod IDebugBreakpointResolution2 .
Metoda | opis |
---|---|
GetBreakpointType | Pobiera typ punktu przerwania reprezentowanego przez rozwiązanie. |
GetResolutionInfo | Pobiera informacje o rozwiązywaniu punktów przerwania, które opisują punkt przerwania. |
Rozwiązanie błędów, które mogą wystąpić podczas wiązania, wymaga implementacji następujących metod IDebugErrorBreakpoint2 .
Metoda | opis |
---|---|
GetPendingBreakpoint | Pobiera oczekujący punkt przerwania zawierający punkt przerwania błędu. |
GetBreakpointResolution | Pobiera rozwiązanie błędu punktu przerwania, które opisuje punkt przerwania błędu. |
Rozwiązanie błędów, które mogą wystąpić podczas wiązania, wymaga również następujących metod IDebugErrorBreakpointResolution2.
Metoda | opis |
---|---|
GetBreakpointType | Pobiera typ punktu przerwania. |
GetResolutionInfo | Pobiera informacje o rozwiązywaniu punktu przerwania. |
Wyświetlenie kodu źródłowego w punkcie przerwania wymaga zaimplementowania metod IDebugStackFrame2::GetDocumentContext i/lub metod IDebugStackFrame2::GetCodeContext.