Aparat debugowania

Aparat debugowania (DE) współpracuje z interpreterem lub systemem operacyjnym, aby zapewnić usługi debugowania, takie jak kontrola wykonywania, punkty przerwania i ocena wyrażeń. De jest odpowiedzialny za monitorowanie stanu debugowanego programu. Aby to zrobić, de używa dowolnych metod dostępnych w obsługiwanym środowisku uruchomieniowym, niezależnie od tego, czy z procesora CPU, czy 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. De, który obsługuje clR używa odpowiednich interfejsów ICorDebugXXX, aby śledzić debugowany program kodu zarządzanego. Następnie przekazuje wszelkie zmiany stanu do menedżera debugowania sesji (SDM), który przekazuje takie informacje do środowiska IDE programu Visual Studio.

Uwaga

Aparat debugowania jest przeznaczony dla określonego środowiska uruchomieniowego, czyli systemu, w którym jest uruchamiany 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 środowisk uruchomieniowych, program Visual Studio dostarcza już niezbędne aparaty debugowania. Wszystko, co musisz zaimplementować, to ewaluator wyrażeń.

Operacja aparatu 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

Chociaż istnieją oddzielne implementacje DE dla języków Transact-SQL i JScript, VBScript i JScript współużytkują pojedynczą 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ć intymną wiedzę na temat 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. Niezależnie od tego, czy de jest ładowany w procesie, poza procesem, czy na innym komputerze, nie ma wpływu na komunikację składników.

De współpracuje ze składnikiem ewaluatora wyrażeń, aby umożliwić de dla danego środowiska uruchomieniowego zrozumienie składni wyrażeń. 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 też