Udostępnij przez


Aparat debugowania

Silnik debugowania (DE) współpracuje z interpreterem lub systemem operacyjnym, aby zapewnić usługi debugowania, takie jak kontrola wykonywania, punkty przerwania i ewaluacja wyrażeń. De jest odpowiedzialny za monitorowanie stanu debugowanego programu. Aby to osiągnąć, DE używa dowolnych metod dostępnych w obsługiwanym środowisku uruchomieniowym, zarówno z CPU, jak i z interfejsów API dostarczonych przez środowisko uruchomieniowe.

Na przykład środowisko uruchomieniowe języka wspólnego (CLR) dostarcza mechanizmy monitorowania uruchomionego programu za pośrednictwem interfejsów ICorDebugXXX. Środowisko deweloperskie, które obsługuje CLR, używa odpowiednich interfejsów ICorDebugXXX, aby śledzić program napisany w kodzie zarządzanym, który jest debugowany. Następnie przekazuje wszelkie zmiany stanu do menedżera debugowania sesji (SDM), który przekazuje takie informacje do środowiska IDE programu Visual Studio.

Uwaga / Notatka

Silnik debugujący jest przeznaczony dla określonego środowiska uruchomieniowego, czyli systemu, w którym działa debugowany program. CLR to środowisko uruchomieniowe kodu zarządzanego, a środowisko uruchomieniowe Win32 jest przeznaczone dla natywnych aplikacji systemu Windows. Jeśli utworzony język może być przeznaczony dla jednego z tych dwóch runtimes, program Visual Studio dostarcza już niezbędne silniki debugowania. Wszystko, co musisz zaimplementować, to ewaluator wyrażeń.

Działanie silnika debugowania

Usługi monitorowania są implementowane za pośrednictwem interfejsów DE i mogą spowodować przejście pakietu debugowania między różnymi trybami operacyjnymi. Aby uzyskać więcej informacji, zobacz Tryby operacyjne. Zwykle istnieje tylko jedna implementacja DE na środowisko czasu wykonywania.

Uwaga / Notatka

Chociaż istnieją oddzielne implementacje DE dla Transact-SQL i JScript, VBScript i JScript współużytkują jeden de.

Debugowanie programu Visual Studio umożliwia aparatom debugowania uruchamianie jednego z dwóch sposobów: w tym samym procesie co powłoka programu Visual Studio lub w tym samym procesie co debugowany program docelowy. Ten ostatni formularz zwykle występuje, gdy debugowany proces jest w rzeczywistości skryptem uruchomionym w interpreterze. Aparat debugowania musi mieć dokładną znajomość interpretera, aby monitorować skrypt. W takim przypadku interpreter jest w rzeczywistości środowiskiem uruchomieniowym; Aparaty debugowania są przeznaczone dla określonych implementacji środowiska uruchomieniowego. Ponadto implementacja pojedynczego de może być podzielona na granice procesów i maszyn (na przykład debugowanie zdalne).

De uwidacznia interfejsy debugowania programu Visual Studio. Cała komunikacja odbywa się za pośrednictwem modelu COM. Bez względu na to, czy DE jest ładowany w procesie, poza procesem, czy na innym komputerze, nie ma to wpływu na komunikację składników.

DE współpracuje z komponentem ewaluatora wyrażeń, aby umożliwić DE zrozumienie składni wyrażeń w danym środowisku uruchomieniowym. De współpracuje również ze składnikiem obsługi symboli w celu uzyskania dostępu do symbolicznych informacji debugowania generowanych przez kompilator języka. Aby uzyskać więcej informacji, zobacz Ewaluator wyrażeń i Dostawca symboli.

Zobacz także