Udostępnij za pośrednictwem


Debugowanie usługi

Aby debugować usługę, możesz użyć dowolnej z następujących metod.

  • Debuger służy do debugowania usługi podczas jej działania. Najpierw uzyskaj identyfikator procesu (PID) procesu usługi. Po uzyskaniu identyfikatora PID dołącz do uruchomionego procesu. Aby uzyskać informacje o składni, zobacz dokumentację zawartą w debugerze.

  • Wywołaj funkcję DebugBreak, aby uruchomić debugger do debugowania w czasie rzeczywistym.

  • Określ debuger do użycia podczas uruchamiania programu. W tym celu utwórz klucz o nazwie Opcje wykonywania pliku obrazu w następującej lokalizacji rejestru:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

    Utwórz podklucz o takiej samej nazwie jak usługa (na przykład MYSERV.EXE). W tym podkluczu dodaj wartość typu REG_SZo nazwie Debugger. Użyj pełnej ścieżki do debugera jako wartości ciągu. W aplecie Panelu sterowania Usługi wybierz swoją usługę, kliknij pozycję Start i zaznacz Zezwalaj usłudze na interakcję z pulpitem. Usługa musi być usługą interaktywną lub debuger nie może działać na domyślnym pulpicie. Należy pamiętać, że ta technika nie jest już obsługiwana w systemie Windows Vista, ponieważ wszystkie usługi są uruchamiane w sesji, która jest zarezerwowana wyłącznie dla usług i nie obsługuje wyświetlania interfejsu użytkownika.

  • Aby rejestrować informacje, użyj Śledzenie Zdarzeń.

Aby debugować kod inicjowania usługi automatycznego uruchamiania, należy tymczasowo zainstalować i uruchomić usługę jako usługę uruchamiania na żądanie.

Czasami może być konieczne uruchomienie usługi jako aplikacji konsolowej na potrzeby debugowania. W tym scenariuszu funkcja StartServiceCtrlDispatcher zwróci ERROR_FAILED_SERVICE_CONTROLLER_CONNECT. W związku z tym upewnij się, że kod specyficzny dla usługi nie jest wywoływany, gdy zwracany jest ten błąd.

debugowanie aplikacji serwisowej

narzędzia debugowania dla systemu Windows