Ladění služby

K ladění služby můžete použít kteroukoli z následujících metod.

  • Pomocí ladicího programu můžete službu ladit, když je spuštěná. Nejprve získejte identifikátor procesu zpracování (PID) procesu služby. Po získání PID se připojte ke spuštěném procesu. Informace o syntaxi najdete v dokumentaci, která je součástí ladicího programu.

  • Zavolejte funkci DebugBreak k vyvolání debuggeru pro ladění za běhu.

  • Nastavte ladicí program, který se má použít při spuštění programu. Uděláte to tak, že vytvoříte klíč s názvem Možnosti spuštění souboru image v následujícím umístění registru:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

    Vytvořte podklíč se stejným názvem jako vaše služba (například MYSERV.EXE). Do tohoto podklíče přidejte hodnotu typu REG_SZs názvem Debugger. Jako hodnotu řetězce použijte úplnou cestu k ladicímu programu. V ovládacím panelu Služby vyberte službu, klikněte na Spouštěcí a zaškrtněte Povolit službě interakci s desktopovou. Služba musí být interaktivním procesem, jinak ladicí program nemůže běžet na výchozím desktopu. Všimněte si, že tato technika již není podporována v systému Windows Vista, protože všechny služby jsou spuštěny v relaci, která je vyhrazena výhradně pro služby a nepodporuje zobrazení uživatelského rozhraní.

  • K zaznamenávání informací použijte trasování událostí .

Chcete-li ladit inicializační kód služby automatického spuštění, budete muset dočasně nainstalovat a spustit službu jako službu spuštění na vyžádání.

Někdy může být nutné spustit službu jako konzolovou aplikaci pro účely ladění. V tomto scénáři funkce StartServiceCtrlDispatcher vrátí ERROR_FAILED_SERVICE_CONTROLLER_CONNECT. Proto nezapomeňte kód strukturovat tak, aby kód specifický pro službu nebyl volán, když je tato chyba vrácena.

Ladění aplikace služby

nástroje pro ladění pro Windows