Udostępnij przez


Metody zarządzania punktami przerwania

Punkt przerwania to lokalizacja w kodzie wykonywalnym, w którym system operacyjny zatrzymuje wykonywanie i dzieli się na debuger. Dzięki temu można analizować polecenia debugera docelowego i wystawiać je.

Możesz określić lokalizację punktu przerwania według wirtualnego adresu, modułu i rutynowych przesunięć albo pliku źródłowego i numeru wiersza (w trybie źródłowym). Jeśli punkt przerwania zostanie umieszczony na rutynie bez przesunięcia, punkt przerwania zostanie aktywowany po wejściu do tej rutyny.

Istnieje kilka dodatkowych rodzajów punktów przerwania:

  • Punkt przerwania może być skojarzony z określonym wątkiem.

  • Punkt przerwania może umożliwić stałą liczbę przejść przez adres, zanim zostanie aktywowany.

  • Punkt przerwania może automatycznie wydawać niektóre polecenia, gdy zostanie uruchomiony.

  • Punkt przerwania można ustawić w pamięci nie wykonywalnej i sprawdzić, czy ta lokalizacja ma być odczytywana lub zapisywana.

Jeśli debugujesz więcej niż jeden proces w trybie użytkownika, kolekcja punktów przerwania zależy od bieżącego procesu. Aby wyświetlić lub zmienić punkty przerwania procesu, musisz wybrać proces jako bieżący proces. Aby uzyskać więcej informacji na temat bieżącego procesu, zobacz Kontrolowanie procesów i wątków.

Polecenia debugera do kontrolowania i wyświetlania punktów przerwania

Aby kontrolować lub wyświetlać punkty przerwania, można użyć następujących metod:

W systemie WinDbg istnieje kilka elementów interfejsu użytkownika, które ułatwiają kontrolowanie i wyświetlanie punktów przerwania. Zobacz Ustawianie punktów przerwania w usłudze WinDbg (wersja klasyczna).

Każdy punkt przerwania ma numer dziesiętny nazywany identyfikatorem punktu przerwania skojarzonym z nim. Ten numer identyfikuje punkt przerwania w różnych poleceniach.

Polecenia punktu przerwania

Możesz dodać polecenie w punkcie przerwania, które zostanie automatycznie wykonane, gdy zostanie on osiągnięty. Na przykład następujące polecenie przerywa działanie polecenia MyFunction+0x47, zapisuje plik zrzutu, a następnie wznawia wykonywanie.

0:000> bu MyFunction+0x47 ".dump c:\mydump.dmp; g" 

Nuta Jeśli kontrolujesz debuger trybu użytkownika z debugera jądra, nie używaj g (Go) w ciągu polecenia punktu przerwania. Interfejs szeregowy może nie nadążać za tym poleceniem, co uniemożliwi ponowne uzyskanie dostępu do CDB. Aby uzyskać więcej informacji na temat tej sytuacji, zobacz Kontrolowanie debugera User-Mode z debugera jądra.

Liczba punktów przerwania

W trybie jądra można użyć maksymalnie 32 punktów przerwania oprogramowania. W trybie użytkownika można użyć dowolnej liczby punktów przerwania oprogramowania.

Liczba obsługiwanych punktów przerwania procesora zależy od architektury procesora docelowego.

Warunkowe punkty przerwania

Punkt przerwania można ustawić tylko w określonych warunkach. Aby uzyskać więcej informacji na temat tego rodzaju punktów przerwania, zobacz Ustawianie warunkowego punktu przerwania.

Niejednoznaczne punkty przerwania

W wersji 10.0.25310.1001 i nowszej aparatu debugera rozpoznawanie niejednoznacznych punktów przerwania jest teraz obsługiwane. Niejednoznaczne punkty przerwania umożliwiają debugerowi ustawianie punktów przerwania w niektórych scenariuszach, w których wyrażenie punktu przerwania odnosi się do wielu lokalizacji. Aby uzyskać więcej informacji, zobacz Niejednoznaczne rozwiązanie punktu przerwania.

Zobacz także

Używanie punktów przerwania

Składnia punktu przerwania

bp, bu, bm (Ustaw punkt przerwania)

Nierozwiązane punkty przerwania (bu Breakpoints)