Come eseguire il debug servizi di Windows

Traduzione articoli Traduzione articoli
Identificativo articolo: 824344 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo passo passo viene descritto come eseguire il debug di Windows service utilizzando il debugger WinDbg (windbg.exe). Per eseguire il debug un servizio di Windows, č possibile connettere il debugger di WinDbg per il processo che ospita il servizio una volta avviato il servizio o č possibile configurare il servizio venga avviato con il WinDbg debugger in modo che č possibile risolvere problemi relativi a avvio servizio. Questo articolo viene descritto entrambi i metodi.

Requisiti

In questo articolo si presume la conoscenza dei seguenti argomenti:
  • Servizi Windows
  • WinDbg Debugger

Connettere il debugger WinDbg a un servizio, in una volta avviato il servizio

Questo metodo č simile al metodo che č possibile utilizzare per associare un debugger a un processo ed eseguire quindi il debug di un processo.

Utilizzare l'ID processo del processo che ospita il servizio che si desidera eseguire il debug

  1. Per determinare l'ID processo (PID) del processo che ospita il servizio che si desidera eseguire il debug, utilizzare uno dei metodi descritti di seguito.
    • Metodo 1: Utilizzare Task Manager
      1. Fare clic con pulsante destro sulla barra delle applicazioni e quindi fare clic su Task Manager . Verrā visualizzata la finestra di dialogo Task Manager .
      2. Fare clic sulla scheda processi della finestra di dialogo Task Manager .
      3. In Nome immagine , fare clic sul nome immagine del processo che ospita il servizio che si desidera eseguire il debug. Prendere nota dell'ID processo di questo processo come specificato dal valore di campo PID corrispondente.
    • Metodo 2: Utilizzare l'utilitā di elenco di attivitā (tlist.exe)
      1. Fare clic su Start e quindi fare clic su Esegui . Verrā visualizzata la finestra di dialogo Esegui .
      2. Nella casella Apri digitare cmd e quindi fare clic su OK .
      3. Al prompt dei comandi, modificare il percorso di directory per riflettere il percorso del file tlist.exe sul computer.

        Nota Il file di tlist.exe in genere si trova nella seguente directory: cartella agli strumenti per Windows
      4. Al prompt di comando, digitare tlist per elencare i nomi di immagine e i PID di tutti i processi attualmente in esecuzione sul computer.

        Nota Prendere nota dell'ID di processo del processo che ospita il servizio che si desidera eseguire il debug.
  2. Al prompt dei comandi di modificare il percorso di directory per riflettere il percorso del file windbg.exe sul computer.

    Nota Se un prompt dei comandi non č aperta, attenersi alla seguente procedura un e b del metodo 1. Il file di windbg.exe in genere si trova nella seguente directory: cartella agli strumenti per Windows.
  3. Al prompt di comando, digitare windbg ? p ProcessID /g per connettere il debugger WinDbg il processo che ospita il servizio che si desidera eseguire il debug.

    Nota ProcessID č un segnaposto per l'ID di processo del processo che ospita il servizio che si desidera eseguire il debug.

Utilizzare il nome immagine del processo che ospita il servizio che si desidera eseguire il debug

Č possibile utilizzare questo metodo solo se č esattamente un'istanza in esecuzione del processo che ospita il servizio che si desidera eseguire. Per effettuare questa operazione, attenersi alla seguente procedura:
  1. Fare clic su Start e quindi fare clic su Esegui . Verrā visualizzata la finestra di dialogo Esegui .
  2. Nella casella Apri digitare cmd e quindi fare clic su OK per aprire un prompt dei comandi.
  3. Al prompt dei comandi, modificare il percorso di directory per riflettere il percorso del file windbg.exe sul computer.

    Nota Il file di windbg.exe in genere si trova nella seguente directory: cartella agli strumenti per Windows.
  4. Al prompt di comando, digitare windbg ?pn ImageName /g per connettere il debugger WinDbg il processo che ospita il servizio che si desidera eseguire il debug.

    Nota ImageName č un segnaposto per il nome del processo che ospita il servizio che si desidera eseguire il debug dell'immagine. Il "-pn" opzione della riga di comando Specifica che l'argomento della riga di comando ImageName č il nome dell'immagine di un processo.

Avviare il debugger WinDbg e connettersi al processo che ospita il servizio che si desidera eseguire il debug

  1. Avviare Esplora risorse.
  2. Individuare il file windbg.exe sul computer.

    Nota Il file di windbg.exe in genere si trova nella seguente directory: cartella agli strumenti per Windows
  3. Eseguire il file windbg.exe con l'opzione della riga di comando /g per avviare WinDbg il debugger. L'opzione della riga di comando /g consente il processo di revisione continuare dopo aver impostato il punto di interruzione.
  4. Dal menu file , scegliere Connetti a un processo a visualizzare la finestra di dialogo Connetti a processo .
  5. Fare clic per selezionare il nodo corrispondente al processo che ospita il servizio che si desidera eseguire il debug e quindi fare clic su OK .
  6. Nella finestra di dialogo viene visualizzata, scegliere per salvare le informazioni di base dell'area di lavoro. Si noti che č possibile eseguire il ora debug il codice disassemblato del servizio.

Configurare un servizio venga avviato con WinDbg il debugger

Č possibile utilizzare questo metodo per il debug di servizi se si desidera risolvere i problemi relativi ai servizi avvio.
  1. Configurare le opzioni "Immagine l'esecuzione di file modalitā". Per effettuare questa operazione, utilizzare uno dei metodi descritti di seguito:
    • Metodo 1: Utilizzare l'editor di flag globali (gflags.exe)
      1. Avviare Esplora risorse.
      2. Individuare il file gflags.exe sul computer.

        Nota Il file di gflags.exe in genere si trova nella seguente directory: cartella agli strumenti per Windows.
      3. Eseguire il file gflags.exe per avviare il flag globale editor.
      4. Nella casella Nome del file immagine , digitare il nome di immagine del processo che ospita il servizio che si desidera eseguire il debug. Ad esempio, se si desidera eseguire il debug un servizio ospitato da un processo che ha MyService.exe come nome dell'immagine, digitare MyService.exe .
      5. Nella sezione destinazione fare clic su per selezionare l'opzione Image File Options .
      6. In Opzioni del debugger di immagine , fare clic per selezionare la casella di controllo del debugger .
      7. Nella casella di testo del debugger , digitare il percorso completo del debugger che si desidera utilizzare. Ad esempio, se si desidera utilizzare il debugger WinDbg per il debug di un servizio, č possibile digitare un percorso completo simile al seguente: C:\Programmi\Debugging Tools for Windows\windbg.exe
      8. Fare clic su Applica e quindi fare clic su OK per uscire dal flag globale.
    • Metodo 2: Utilizzare scopo
      1. Fare clic su Start e quindi fare clic su Esegui . Verrā visualizzata la finestra di dialogo Esegui .
      2. Nella casella Apri digitare regedit e quindi scegliere OK per avviare l'editor del Registro di sistema.
      3. importante Questa sezione, metodo o l'attivitā sono contenute procedure viene illustrato come modificare il Registro di sistema. Tuttavia, possono causare seri problemi se si modifica il Registro di sistema in modo errato. Pertanto, assicurarsi che questa procedura con attenzione. Per maggiore protezione, č eseguire il backup del Registro di sistema prima di modificarlo. Č quindi possibile ripristinare il Registro di sistema se si verifica un problema. Per ulteriori informazioni su come eseguire il backup e ripristino del Registro di sistema, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
        322756Come eseguire il backup e il ripristino del Registro di sistema in Windows


        In Editor del Registro di sistema individuare e fare clic con il pulsante destro del mouse sulla seguente sottochiave del Registro di sistema:
        HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
      4. Scegliere Nuovo , quindi chiave . Nel riquadro sinistro dell'editor del Registro di sistema, osservare che nuova chiave # 1 (il nome di una nuova sottochiave del Registro di sistema) selezionata per la modifica.
      5. Digitare ImageName per sostituire la nuova chiave # 1 , quindi premere INVIO.

        Nota ImageName č un segnaposto per il nome del processo che ospita il servizio che si desidera eseguire il debug dell'immagine. Ad esempio, se si desidera eseguire il debug un servizio ospitato da un processo che ha MyService.exe come nome dell'immagine, digitare MyService.exe .
      6. Fare clic con il pulsante destro del mouse la sottochiave del Registro di sistema creato nel passaggio e.
      7. Scegliere Nuovo , quindi Valore stringa . Nel riquadro destro dell'editor del Registro di sistema, osservare che nuovo valore # 1 , il nome di una nuova voce del Registro di sistema, selezionata per la modifica.
      8. Sostituire il nuovo valore # 1 con il debugger e quindi premere INVIO.
      9. Fare clic con il pulsante destro del debugger voce del Registro di sistema creato nel passaggio h e quindi fare clic su Modifica . Verrā visualizzata la finestra di dialogo Modifica stringa .
      10. Nella casella di testo dati valore digitare DebuggerPath e quindi fare clic su OK .

        Nota DebuggerPath č un segnaposto per il percorso completo del debugger che si desidera utilizzare. Ad esempio, se si desidera utilizzare il debugger WinDbg per il debug di un servizio, č possibile digitare un percorso completo simile al seguente:
        C:\Progra~1\Debugg~1\windbg.exe
  2. Per la finestra debugger venga visualizzato sul desktop e di interagire con il debugger, rendere il servizio interattivi. Se non si esegue il servizio interattivo, che il debugger verrā avviato ma non č possibile visualizzarlo e che č Impossibile inviare comandi. Per rendere il servizio interattivo, utilizzare uno dei seguenti metodi:
    • Metodo 1: Utilizzare la console di servizi
      1. Fare clic su Start e quindi scegliere programmi .
      2. Nel menu programmi , Strumenti di amministrazione , quindi servizi . Verrā visualizzata la console servizi .
      3. Nel riquadro di destra dei servizi , fare clic con il pulsante destro del mouse su ServiceName della console, quindi scegliere Proprietā .

        Nota ServiceName č un segnaposto per il nome del servizio che si desidera eseguire il debug.
      4. Nella scheda Connessione fare clic per selezionare la casella di controllo Consenti al servizio di interagire col desktop in account di sistema locale e scegliere OK .
    • Metodo 2: Utilizzare scopo
      1. In Editor del Registro di sistema individuare e selezionare la seguente sottochiave del Registro di sistema:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName
        Nota Sostituire ServiceName con il nome del servizio che si desidera eseguire il debug. Ad esempio, se si desidera eseguire il debug di un servizio denominato MyService, individuare e quindi selezionare la seguente chiave del Registro di sistema:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService
      2. Sotto il nome di campo nel riquadro di destra dell'editor del registro, fare clic con il pulsante destro del mouse tipo e scegliere Modifica . Verrā visualizzata la finestra di dialogo Modifica valore DWORD .
      3. Modificare il testo in dati valore casella di testo per il risultato dell'operazione di OR binario con il valore binario del testo corrente e il valore binario, 0 x 00000100, come i due operandi. Il valore binario, 0 x 00000100, corrisponde alla costante SERVICE_INTERACTIVE_PROCESS definito nel file di intestazione WinNT.h nel computer. Questa costante specifica che un servizio interattivo natura.
  3. Quando viene avviato un servizio, il servizio comunica a Gestione controllo servizi quanto tempo il servizio necessario necessario avviare (periodo di timeout per il servizio). Se Gestione controllo servizi non riceve una notifica di "avviata di servizio" dal servizio entro questo periodo di timeout, Gestione controllo servizi termina il processo che ospita il servizio. Questo periodo di timeout č in genere meno di 30 secondi. Se non vengono modificati in questo periodo di timeout, Gestione controllo servizi termina il processo e il debugger collegato mentre si sta tentando di eseguire il debug. Per modificare il periodo di timeout, attenersi alla seguente procedura:
    1. In Editor del Registro di sistema individuare e fare clic con il pulsante destro del mouse sulla seguente sottochiave del Registro di sistema:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
    2. Scegliere Nuovo , quindi Valore DWORD . Nel riquadro destro dell'editor del Registro di sistema, osservare che nuovo valore # 1 (il nome di una nuova voce del Registro di sistema) selezionata per la modifica.
    3. Digitare ServicesPipeTimeout per sostituire il nuovo valore # 1 , quindi premere INVIO.
    4. Fare clic con il pulsante destro del mouse il ServicesPipeTimeout voce del Registro di sistema che č creato nel passaggio c e quindi fare clic su Modifica . Verrā visualizzata la finestra di dialogo Modifica valore DWORD .
    5. Nella casella di testo dati valore digitare TimeoutPeriod e quindi fare clic su OK

      Nota TimeoutPeriod č un segnaposto per il valore del periodo di timeout (in millisecondi) che si desidera impostare per il servizio. Ad esempio, se si desidera impostare il periodo di timeout su 24 ore (86400000 millisecondi), digitare 86400000 .
    6. Riavviare il computer. Č necessario riavviare il computer per Gestione controllo servizi per applicare la modifica.
  4. Avviare il servizio di Windows. Per effettuare questa operazione, attenersi alla seguente procedura:
    1. Fare clic su Start e quindi scegliere programmi .
    2. Nel menu programmi , Strumenti di amministrazione , quindi servizi . Verrā visualizzata la console servizi .
    3. Nel riquadro di destra dei servizi della console, fare clic con il pulsante destro del mouse su ServiceName e scegliere Avvia .

      Nota ServiceName č un segnaposto per il nome del servizio che si desidera eseguire il debug.

Risoluzione dei problemi

Prima di tentare di eseguire il debug in una rete di un servizio, assicurarsi che i simboli e i file di origine utilizzato dal servizio siano accessibili dal computer in cui verrā eseguito il servizio in uso. Per effettuare questa operazione, utilizzare uno dei metodi descritti di seguito:
  • Concedere almeno in lettura: autorizzazioni di accesso a tutti gli utenti per la cartella del computer che contiene i simboli e i file di origine utilizzato dal servizio.
  • Copiare questi simboli e la file di origine utilizzato dal servizio sul computer in cui verrā eseguito il servizio.

Riferimenti

Per scaricare gli strumenti e le utilitā descritte in questo articolo, il seguente sito Microsoft Web:
Gli strumenti di debug per Windows: Panoramica
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
Per ulteriori informazioni, visitare il seguente Microsoft Developer siti Web (MSDN):
Debugger WinDbg
http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
Servizi
http://msdn2.microsoft.com/en-us/library/ms685141.aspx
Utilizzando il flag globale utilitā
http://msdn2.microsoft.com/en-us/library/ms792858.aspx

Proprietā

Identificativo articolo: 824344 - Ultima modifica: mercoledė 16 maggio 2007 - Revisione: 6.5
Le informazioni in questo articolo si applicano a:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter 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 Home Edition SP1
  • Microsoft Windows XP Home Edition SP1a
  • Microsoft Windows XP Home Edition SP2
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Professional SP1
  • Microsoft Windows XP Professional SP1a
  • Microsoft Windows XP Professional SP2
Chiavi: 
kbmt kbimghlp kbregistry kbservice kbdebug kbmisctools kbhowtomaster KB824344 KbMtit
Traduzione automatica articoli
Il presente articolo č stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non č sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pių o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non č la sua. Microsoft non č responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 824344
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com