Ladění služby systému Windows

Souhrn

Tento podrobný článek popisuje ladění služby systému Windows pomocí ladicí program WinDbg (windbg.exe). Ladění služby systému Windows, můžete připojit ladící program WinDbg k procesu, který je hostitelem služby po spuštění služby nebo můžete nakonfigurovat službu spuštění s ladicí program WinDbg připojen tak, že můžete vyřešit problémy související s služby při spuštění. Tento článek popisuje, jak tyto metody.

zpět na horní

Požadavky

Tento článek předpokládá, že jste obeznámeni s následující témata:
  • Služby systému Windows
  • Ladicí program WinDbg
zpět na horní

Připojit ladicí program WinDbg služba po spuštění služby

Tato metoda je podobná metodě můžete připojit ladicí program k procesu a potom ladění procesu.

Použít ID procesu pro proces, který je hostitelem služby, který chcete ladit

  1. Určení procesu ID (PID) procesu, který je hostitelem služby, kterou chcete ladit, použijte jednu z následujících metod.
    • Metoda 1: Pomocí Správce úloh
      1. Klepněte pravým tlačítkem myši na hlavním panelu a potom klepněte na tlačítko
        Správce úloh. Zobrazí se dialogové okno Správce úloh systému Windows .
      2. Klepněte na kartu procesy
        Dialogové okno Správce úloh systému Windows .
      3. Název bitové kopieklepněte na název procesu, který je hostitelem služby, kterou chcete ladit. Poznámka: Tento proces podle hodnoty odpovídajícího ID procesu
        Číslo PID .
    • Metoda 2: Použití nástroje seznam úloh (tlist.exe)
      1. Klepněte na tlačítko Starta potom klepněte na tlačítko
        Spustit. Zobrazí se dialogové okno Spustit .
      2. Do pole Otevřít zadejte
        příkaz cmda klepněte na tlačítko OK.
      3. Na příkazovém řádku změňte cestu k adresáři tak, aby odrážely umístění souboru tlist.exe ve vašem počítači.

        Poznámka: Soubor tlist.exe je obvykle umístěn v následující adresář: C:\Program Files\Debugging Tools for Windows
      4. Na příkazovém řádku zadejte:
        tlist seznam názvy obrázků a proces ID všech procesů aktuálně spuštěných v počítači.

        Poznámka: Poznamenejte si Identifikátor procesu, který je hostitelem služby, kterou chcete ladit.
  2. Na příkazovém řádku změňte cestu k adresáři tak, aby odrážel umístění windbg.exe soubor ve vašem počítači.

    Poznámka: Pokud příkazový řádek není otevřen, postupujte podle kroků a b metoda 1. Windbg.exe soubor je obvykle umístěn v následující adresář: C:\Program Files\Debugging Tools for Windows.
  3. Na příkazovém řádku zadejte windbg – p
    /G ID procesu připojit ladicí program WinDbg k procesu, který je hostitelem služby, kterou chcete ladit.

    Poznámka: ID procesu je zástupný symbol pro ID procesu pro proces, který je hostitelem služby, kterou chcete ladit.
zpět na horní

Použít název procesu, který je hostitelem služby, který chcete ladit

Tuto metodu můžete použít pouze v případě, že je přesně jedna instance spuštěný proces, který je hostitelem služby, kterou chcete spustit. Chcete-li to provést, postupujte takto:
  1. Klepněte na tlačítko Starta potom klepněte na tlačítko
    Spustit. Zobrazí se dialogové okno Spustit .
  2. Do pole Otevřít zadejte
    příkaz cmda klepněte na tlačítko OK otevřete okno příkazového řádku.
  3. Na příkazovém řádku změňte cestu k adresáři tak, aby odrážel umístění windbg.exe soubor ve vašem počítači.

    Poznámka: Windbg.exe soubor je obvykle umístěn v následující adresář: C:\Program Files\Debugging Tools for Windows.
  4. Na příkazovém řádku zadejte windbg – pn
    /G ImageName připojit ladící program WinDbg k procesu, který je hostitelem služby, kterou chcete ladit.

    Poznámka: ImageName je zástupný symbol pro název procesu, který je hostitelem služby, kterou chcete ladit. "-Pn" Určuje parametr příkazového řádku, který
    ImageName argument příkazového řádku je název bitové kopie procesu.
zpět na horní

Spusťte ladicí program WinDbg a připojit k procesu, který je hostitelem služby, který chcete ladit

  1. Spusťte program Průzkumník Windows.
  2. Vyhledejte soubor windbg.exe v počítači.

    Poznámka: Windbg.exe soubor je obvykle umístěn v následující adresář: C:\Program Files\Debugging Tools for Windows
  3. Spusťte soubor windbg.exe s /g přepínač příkazového řádku spustit ladicí program WinDbg. /G přepínač příkazového řádku umožňuje sledované procesu pokračovat po nastavení bodu přerušení.
  4. V nabídce soubor klepněte na příkaz připojit k procesu zobrazí dialogové okno připojit k procesu .
  5. Vyberte uzel, který odpovídá proces, který je hostitelem služby, kterou chcete ladit a potom klepněte na tlačítko
    OK.
  6. V dialogovém okně, které se zobrazí klepněte na tlačítko AnoChcete-li uložit pracovní prostor základní informace. Všimněte si, že nyní můžete ladit zpětně přeložený kód služby.
zpět na horní

Nakonfigurujte službu spustit s WinDbg ladicí program připojen

Tuto metodu můžete použít k ladění služby, pokud chcete Poradce při potížích po spuštění související se službou.
  1. Konfigurujte možnosti "Spuštění souboru bitové kopie". Chcete-li to provést, použijte jednu z následujících metod:
    • Metoda 1: Použití Global Flags Editor (gflags.exe)
      1. Spusťte program Průzkumník Windows.
      2. Vyhledejte v počítači soubor gflags.exe.

        Poznámka: Soubor gflags.exe je obvykle umístěn v následující adresář: C:\Program Files\Debugging Tools for Windows.
      3. Spusťte soubor gflags.exe spuštění Global Flags Editor.
      4. Do textového pole Název souboru obrázku zadejte název procesu, který je hostitelem služby, kterou chcete ladit. Například pokud chcete ladit službu, která je hostitelem proces, který má MyService.exe jako název bitové kopie, zadejte
        MyService.exe.
      5. Podle místa určeníklepněte na možnost Volby souboru obrazu .
      6. Ve skupinovém rámečku Možnosti obrázku Debuggerklepnutím zaškrtněte políčko ladicí program .
      7. Do textového pole ladicí program zadejte úplnou cestu, kterou chcete použít ladicí program. Například pokud chcete použít ladící program WinDbg k ladění služby, můžete zadat úplnou cestu, která je podobná následující: C:\Program Files\Debugging Tools for Windows\windbg.exe
      8. Klepněte na tlačítko použíta potom klepněte na tlačítko
        OK ukončete Global Flags Editor.
    • Metoda 2: Použití Editoru registru
      1. Klepněte na tlačítko Starta potom klepněte na tlačítko
        Spustit. Zobrazí se dialogové okno Spustit .
      2. Do pole Otevřít zadejte
        regedita klepněte na tlačítko OK spusťte Editor registru.
      3. Důležité: Tento oddíl, metoda nebo úkol obsahuje kroky, které popisují úpravu registru. Při nesprávné úpravě registru mohou nastat závažné problémy Proto se ujistěte, že budete opatrně postupovat podle těchto kroků Pro zvýšení ochrany před úpravou zálohujte registr. Pokud dojde k potížím, pak můžete registr obnovit ze zálohy. Pro další informace o zálohování a obnovení registru klepněte na následující číslo článku databáze Microsoft Knowledge Base:
        322756 postup zálohování a obnovení registru v systému Windows


        V editoru registru vyhledejte a klepněte pravým tlačítkem myši na následující podklíč registru:
        HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image souboru spuštění možnosti
      4. Přejděte na příkaz Novýa potom klepněte na tlačítko
        Klíč. V levém podokně Editoru registru Všimněte si, že
        Nový klíč #1 (název nového podklíče registru) je vybrána pro úpravy.
      5. Zadejte ImageName nahradit Nový klíč #1a stiskněte klávesu ENTER.

        Poznámka: ImageName je zástupný symbol pro název procesu, který je hostitelem služby, kterou chcete ladit. Například pokud chcete ladit službu, která je hostitelem proces, který má MyService.exe jako název bitové kopie, zadejte
        MyService.exe.
      6. Klepněte pravým tlačítkem myši na podklíč registru, který jste vytvořili v kroku e.
      7. Přejděte na příkaz Novýa potom klepněte na tlačítko
        Hodnota řetězce. V pravém podokně Editoru registru Všimněte si, že je vybrána Nová hodnota #1, název nové položky registru pro úpravy.
      8. Nahradit Nová hodnota #1
        Ladicí programa pak stiskněte klávesu ENTER.
      9. Klepněte pravým tlačítkem myši položku registru ladicí program , který jste vytvořili v kroku h a potom klepněte na příkaz změnit. Na
        Zobrazí se dialogové okno Upravit řetězec .
      10. Do pole Údaj hodnoty zadejte
        DebuggerPatha potom klepněte na tlačítko
        OK.

        Poznámka: DebuggerPath je zástupný symbol pro úplnou cestu, kterou chcete použít ladicí program. Například pokud chcete použít ladící program WinDbg k ladění služby, můžete zadat úplnou cestu, která je podobná následující:
        C:\Progra~1\Debugg~1\windbg.exe
  2. Pro okna ladicího programu se zobrazí na pracovní ploše a interakci s ladicím programem interaktivity služby. Neprovádět služby interaktivní, bude ladicí program spuštěn, ale není viditelný a nelze vydat příkazy. Chcete-li interaktivní služby, použijte jednu z následujících metod:
    • Metoda 1: Pomocí konzoly služby
      1. Klepněte na tlačítko Starta přejděte na
        Programy.
      2. V nabídce programy přejděte na
        Nástroje pro správua potom klepněte na tlačítko
        Služby. Zobrazí se konzola služby .
      3. V pravém podokně konzoly služby ServiceNameklepněte pravým tlačítkem myši a potom klepněte na příkaz Vlastnosti.

        Poznámka: Název_služby představuje název služby, který chcete ladit.
      4. Na kartě Přihlášení klepněte na tlačítko zaškrtněte políčko Povolit službě používání plochy pod
        Místní systémový účeta potom klepněte na tlačítko
        OK.
    • Metoda 2: Použití Editoru registru
      1. V editoru registru vyhledejte a klepněte na následující podklíč registru:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName
        Poznámka: Nahradíte Název_služby název služby, který chcete ladit. Pokud chcete ladit služba s názvem Moje_služba, například vyhledejte a klepněte na následující klíč registru:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService
      2. Ve skupinovém rámečku
        Název pole v pravém podokně Editoru registru klepněte pravým tlačítkem myši Typa klepněte na tlačítko
        Upravit. Zobrazí se dialogové okno Upravit hodnotu DWORD .
      3. Změňte text do textového pole Údaj hodnoty na výsledek operace binární nebo binární hodnota aktuálního textu a binární hodnota 0x00000100, jako dva operandy. Binární hodnota 0x00000100, odpovídá SERVICE_INTERACTIVE_PROCESS konstantní, který je definován v souboru záhlaví souboru WinNT.h v počítači. Tato konstanta Určuje, že služba je interaktivní povahu.
  3. Při spuštění služby, služby komunikuje na správce řízení služeb jak dlouho služba musí mít ke spuštění (časový limit služby). Pokud správce řízení služeb neobdrží oznámení "spuštění služby" služby v rámci tohoto časového limitu, správce řízení služeb ukončí proces, který je hostitelem služby. Tento časový limit je obvykle méně než 30 sekund. Pokud nelze upravit tento časový limit, správce řízení služeb ukončí proces a připojené ladicí program se při ladění. Chcete-li upravit tento časový limit, postupujte takto:
    1. V editoru registru vyhledejte a klepněte pravým tlačítkem myši na následující podklíč registru:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
    2. Přejděte na příkaz Novýa potom klepněte na tlačítko
      Hodnota DWORD. V pravém podokně Editoru registru Všimněte si, že
      Nová hodnota #1 (název nové položky registru) je vybrána pro úpravy.
    3. Zadejte ServicesPipeTimeout nahradit Nová hodnota #1a stiskněte klávesu ENTER.
    4. Klepněte pravým tlačítkem myši položku registru ServicesPipeTimeout , který jste vytvořili v kroku c a potom klepněte na tlačítko
      Upravit. Zobrazí se dialogové okno Upravit hodnotu DWORD .
    5. Do pole Údaj hodnoty zadejte TimeoutPerioda potom klepněte na tlačítko
      Ok

      Poznámka: TimeoutPeriod je zástupný symbol pro hodnotu časového limitu (v milisekundách), který chcete nastavit pro službu. Například, pokud chcete nastavit časový limit 24 hodin (86400000 MS), zadejte 86400000.
    6. Restartujte počítač. Po restartování počítače pro správce služeb použít tuto změnu.
  4. Spuštění služby systému Windows. Chcete-li to provést, postupujte takto:

    1. Klepněte na tlačítko Starta přejděte na
      Programy.
    2. V nabídce programy přejděte na
      Nástroje pro správua potom klepněte na tlačítko
      Služby. Zobrazí se konzola služby .
    3. V pravém podokně konzoly služby ServiceNameklepněte pravým tlačítkem myši a potom klepněte na tlačítko Start.

      Poznámka: Název_služby představuje název služby, který chcete ladit.
zpět na horní

Poradce při potížích

Před pokusíte ladění služby v síti, ujistěte se, že jsou přístupné z počítače, kde je spuštěna služba symboly a zdrojové soubory, které používá služba. Chcete-li to provést, použijte jednu z následujících metod:
  • Udělte oprávnění alespoň přístup ke čtení pro všechny složky v počítači, který obsahuje symboly a zdrojové soubory, které používá služba.
  • Zkopírujte tyto symboly a zdrojové soubory, které používá služba v počítači, kde je spuštěna služba.
zpět na horní

Odkazy

Chcete-li stáhnout nástroje a nástroje, které jsou zmíněny v tomto článku, naleznete na následujícím webu společnosti Microsoft:Další informace naleznete na následujících webech Microsoft Developer Network (MSDN):zpět na horní
Vlastnosti

ID článku: 824344 - Poslední kontrola: 17. 2. 2017 - Revize: 2

Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Professional Edition, Microsoft Windows Server 2003, Enterprise Edition (32-bit x86), Microsoft Windows Server 2003, Standard Edition (32-bit x86), Microsoft Windows Server 2003, Datacenter Edition (32-bit x86), Microsoft Windows XP Home Edition, Microsoft Windows XP Professional

Váš názor