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.
Niemal cała interakcja z aparatem debugera odbywa się za pośrednictwem obiektów klienta, często nazywanych klientami. Każdy klient udostępnia implementację interfejsów silnika najwyższego poziomu. Każdy interfejs udostępnia inny zestaw metod, które mogą służyć do interakcji z silnikiem i, za pośrednictwem silnika, celów. Instancja silnika może mieć wielu klientów, z których każdy ma własny stan.
Klienci podstawowi
Klientem podstawowym jest klient, który dołączył do bieżącej sesji debugowania. Początkowo po utworzeniu nowego obiektu klienta nie jest to klient podstawowy. Klient staje się klientem podstawowym, gdy jest używany do uzyskiwania obiektu docelowego (na przykład przez wywołanie metody CreateProcess2) lub jest połączony z sesją debugowania przy użyciu narzędzia ConnectSession. Polecenie debugera .clients wyświetla tylko klientów podstawowych.
Obiekty wywołania zwrotnego
Obiekty wywołania zwrotnego można zarejestrować dla każdego klienta. Istnieją trzy typy obiektów wywołania zwrotnego:
Obiekty wywołania zwrotnego danych wejściowych (lub wywołania zwrotne danych wejściowych): silnik wywołuje wywołania zwrotne, aby poprosić o dane wejściowe. Na przykład debuger z oknem konsoli może zarejestrować wywołanie zwrotne danych wejściowych, aby zapewnić aparatowi dane wejściowe od użytkownika, lub debuger może zarejestrować wywołanie zwrotne danych wejściowych, aby dostarczyć aparatowi dane z pliku.
Wyjściowe obiekty wywołania zwrotnego (lub wywołania zwrotne danych wyjściowych): silnik wywołuje wywołania zwrotne danych wyjściowych w celu wyświetlenia danych wyjściowych. Na przykład debuger z oknem konsoli może zarejestrować wywołanie zwrotne danych wyjściowych w celu przedstawienia danych wyjściowych debugera użytkownikowi lub debuger może zarejestrować wywołanie zwrotne danych wyjściowych w celu wysłania danych wyjściowych do pliku dziennika.
Obiekty wywołania zwrotnego zdarzeń (lub wywołania zdarzeń): silnik wywołuje te funkcje za każdym razem, gdy zachodzi zdarzenie w obiekcie docelowym (lub gdy następuje zmiana stanu silnika). Na przykład biblioteka rozszerzeń debugera może zarejestrować wywołanie zwrotne zdarzeń w celu monitorowania niektórych zdarzeń lub wykonywania automatycznych akcji w przypadku wystąpienia określonego zdarzenia.
Debugowanie zdalne
Obiekty klienta ułatwiają komunikację z wystąpieniami zdalnymi silnika hosta. Funkcja DebugConnect tworzy obiekt klienta połączony ze zdalnym systemem; metody wywoływane na tym kliencie są wykonywane przez zdalny system, a lokalnie zarejestrowane obiekty wywołań zwrotnych u klienta będą wywoływane, gdy zdalny system wykonuje wywołania zwrotne.
Dodatkowe informacje
Aby uzyskać szczegółowe informacje na temat tworzenia i używania obiektów klienta, zobacz Using Callback Objects (Używanie obiektów wywołania zwrotnego). Aby uzyskać szczegółowe informacje na temat rejestrowania obiektów wywołania zwrotnego, zobacz Using Callback Objects (Używanie obiektów wywołania zwrotnego).