Udostępnij za pośrednictwem


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.

Zobacz też