Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Silnik debugowania (DE) musi obsługiwać ustawianie punktów przerwania. Debugowanie programu Visual Studio obsługuje następujące typy punktów przerwania:
Granica
Żądane za pośrednictwem interfejsu użytkownika i pomyślnie powiązane z określonym miejscem w kodzie
W oczekiwaniu
Żą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 | Description |
|---|---|
| CanBind | Określa, czy określony punkt przerwania w oczekiwaniu może wiązać do lokalizacji kodu. |
| Powiązać | Wiąże określony oczekujący punkt przerwania z jedną lub więcej lokalizacjami 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. |
| Delete | 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 | Description |
|---|---|
| GetPendingBreakpoint | Pobiera oczekujący punkt przerwania, który zawiera inny 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. |
| Delete | Usuwa powiązany punkt przerwania. |
Rozwiązanie i żądanie informacji wymagają implementacji następujących metod IDebugBreakpointResolution2 .
| Metoda | Description |
|---|---|
| GetBreakpointType | Pobiera typ punktu przerwania reprezentowany przez rezolucję. |
| GetResolutionInfo | Pobiera informacje o rezolucji punktu 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 | Description |
|---|---|
| GetPendingBreakpoint | Pobiera punkt przerwania w oczekiwaniu zawierający punkt przerwania z błędem. |
| GetBreakpointResolution | Pobiera rozwiązanie błędu związanego z punktem przerwania, które opisuje ten błąd. |
Rozwiązanie błędów, które mogą wystąpić podczas wiązania, wymaga również następujących metod IDebugErrorBreakpointResolution2.
| Metoda | Description |
|---|---|
| GetBreakpointType | Pobiera typ punktu przerwania. |
| GetResolutionInfo | Pobiera informacje o parametrach punktu przerwania. |
Wyświetlenie kodu źródłowego w punkcie przerwania wymaga zaimplementowania metod IDebugStackFrame2::GetDocumentContext i/lub metod IDebugStackFrame2::GetCodeContext.