Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Cómo depurar servicios de Windows

Ha finalizado el soporte técnico para Windows XP

Microsoft puso fin al soporte técnico para Windows XP el 8 de abril de 2014. Este cambio ha afectado a las actualizaciones de software y las opciones de seguridad. Sepa qué significa esto en su caso y cómo puede mantenerse protegido.

El soporte técnico para Windows Server 2003 finalizó el 14 de julio de 2015

Microsoft finalizó el soporte técnico para Windows Server 2003 el 14 de julio de 2015. Este cambio ha afectado a las actualizaciones de software y las opciones de seguridad. Sepa qué significa esto en su caso y cómo puede mantenerse protegido.

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 824344
Resumen
En este artículo se describe,paso a paso, cómo depurar un servicio de Windows mediante el depurador WinDbg (windbg.exe). Para depurar un servicio de Windows, puede adjuntar al depurador WinDbg para el proceso que aloja el servicio una vez iniciado el servicio, o bien, puede configurar el servicio para iniciar con el depurador WinDbg asociado de modo que puede solucionar los problemas relacionados con el inicio de servicio. En este artículo se describe ambos métodos.

volver al principio

Requisitos

En este artículo se supone que está familiarizado con los temas siguientes:
  • Servicios de Windows
  • Depurador WinDbg
volver al principio

Adjuntar al depurador WinDbg a un servicio cuando se inicie el servicio

Este método es similar al método que se puede utilizar para asociar a un depurador a un proceso y, a continuación, un proceso de depuración.

Utilizar el ID del proceso que aloja el servicio que desea depurar

  1. Para determinar el identificador de proceso (PID) del proceso de servicio hoststhe que desea depurar, utilice uno de los métodos siguientes.
    • Método 1: Usar el Administrador de tareas
      1. Haga clic en la barra de tareas y, a continuación, haga clic en Administrador de tareas. Aparecerá el cuadro de diálogo Administrador de tareas de Windows .
      2. Haga clic en la ficha procesos del cuadro de diálogo Administrador de tareas de Windows .
      3. En Nombre de la imagen, haga clic en el nombre de imagen del proceso que aloja el servicio que desea depurar. Nota El identificador de este proceso especificado por el valor del campo correspondiente de PID .
    • Método 2: Usar la utilidad de lista de tareas (tlist.exe)
      1. Haga clic en Inicio y, a continuación, haga clic en Ejecutar. Aparecerá el cuadro de diálogo Ejecutar .
      2. En el cuadro Abrir , escriba cmdy, a continuación, haga clic en Aceptar.
      3. En el símbolo del sistema, cambie la ruta del directorio para reflejar la ubicación del archivo tlist.exe en su equipo.

        Nota: El archivo tlist.exe normalmente se encuentra en el directorio siguiente: C:\Program programa\Debugging Tools for Windows
      4. En el símbolo del sistema, escriba Tlist enumerar los nombres de imagen y los ID de todos los procesos que se están ejecutando en el equipo.

        Nota: Anote el identificador de proceso del proceso que aloja el servicio que desea depurar.
  2. En el símbolo del sistema, cambie la ruta del directorio para reflejar la ubicación del archivo windbg.exe en su equipo.

    Nota: Si un símbolo no está abierto, siga los pasos a y b del método 1. El archivo windbg.exe normalmente se encuentra en el directorio siguiente: C:\Program Files\Debugging para herramientas de Windows.
  3. En el símbolo del sistema, escriba WinDbg: pProcessID /g Para asociar el debuggerto de WinDbg el proceso que aloja el servicio que desea depurar.

    Nota: ProcessID es un marcador de posición para el identificador de proceso del proceso que aloja el servicio que desea todebug.
volver al principio

Utilice el nombre de imagen del proceso que aloja el servicio que desea depurar

Puede utilizar este método sólo si hay exactamente una instancia en ejecución del proceso que aloja el servicio que desea ejecutar. Para ello, siga estos pasos:
  1. Haga clic en Inicioy, a continuación, haga clic enEjecutar. Aparecerá el cuadro de diálogo Ejecutar .
  2. En el cuadro Abrir , escribacmdy, a continuación, haga clic en Aceptar para abrir la ventana de mandarte.
  3. En el símbolo del sistema, cambie la ruta del directorio para reflejar la ubicación del archivo windbg.exe en su equipo.

    Nota: El archivo windbg.exe se encuentra normalmente en el followingdirectory: C:\Program programa\Debugging Tools for Windows.
  4. En el símbolo del sistema, escriba WinDbg: pnImageName /g Para asociar el debuggerto de WinDbg el proceso que aloja el servicio que desea depurar.

    Nota:ImageName es un marcador de posición para el nombre de imagen del proceso que aloja el servicio que desea depurar. El "-pn" opción de línea de comandos que especifica elImageName argumento de línea de comandos es el proceso de ofa de nombre de imagen.
volver al principio

Iniciar al depurador WinDbg y asociar el proceso que aloja el servicio que desea depurar

  1. Inicie el Explorador de Windows.
  2. Busque el archivo windbg.exe en su equipo.

    Nota: El archivo windbg.exe se encuentra normalmente en el followingdirectory: C:\Program programa\Debugging Tools for Windows
  3. Ejecute el archivo windbg.exe junto con la /g modificador de línea de comandos para iniciar el WinDbgdebugger. La /g modificador de línea de comandos permite que el proceso de seguimiento continuar después de establecer el punto de interrupción.
  4. En el menú archivo , haga clic en adjuntar toa proceso para mostrar el cuadro de asociar al proceso .
  5. Haga clic para seleccionar el nodo que corresponde a los hosts de Mesopotamia el servicio que desea depurar y, a continuación, haga clic enAceptar.
  6. En el cuadro de diálogo que aparece, haga clic en para guardar la información del área de trabajo base. Observe que ahora puede depurar el código de thedisassembled de su servicio.
volver al principio

Configurar un servicio para iniciar con el depurador WinDbg adjunto

Puede utilizar este método para depurar servicios si desea solucionar problemas relacionados con el inicio de servicio.
  1. Configurar las opciones de "Ejecución de archivo de imagen". Para ello, utilice uno de los métodos siguientes:
    • Método 1: Utilice el Editor de indicadores globales (gflags.exe)
      1. Inicie el Explorador de Windows.
      2. Busque el archivo gflags.exe en el equipo.

        Nota: El archivo gflags.exe normalmente se encuentra en el directorio siguiente: C:\Program programa\Debugging Tools for Windows.
      3. Ejecute el archivo gflags.exe para iniciar el Editor de indicadores globales.
      4. En el cuadro de texto Nombre de archivo de imagen , escriba el nombre de imagen del proceso que aloja el servicio que desea depurar. Por ejemplo, si desea depurar un servicio alojado por un proceso que tiene MyService.exe como el nombre de imagen, escriba MyService.exe.
      5. En destino, haga clic en la opción Opciones de archivo de imagen .
      6. En Las opciones del depurador de imagen, haga clic en la casilla de verificación del depurador .
      7. En el cuadro de texto de depurador , escriba la ruta de acceso completa del depurador que desea utilizar. Por ejemplo, si desea utilizar el depurador WinDbg para depurar un servicio, puede escribir una ruta de acceso completa que es similar al siguiente: C:\Program programa\Debugging Tools for Windows\windbg.exe
      8. Haga clic en Aplicary, a continuación, haga clic en Aceptar para cerrar el Editor de indicadores globales.
    • Método 2: Utilice el Editor del registro
      1. Haga clic en Inicio y, a continuación, haga clic en Ejecutar. Aparecerá el cuadro de diálogo Ejecutar .
      2. En el cuadro Abrir , escriba Regedity, a continuación, haga clic en Aceptar para iniciar el Editor del registro.
      3. Importante: Esta sección, el método o la tarea contiene pasos que indican cómo modificar el registro. Sin embargo, pueden producirse problemas graves si modifica incorrectamente el registro. Por lo tanto, asegúrese de que sigue estos pasos cuidadosamente. Para una mayor protección, haga una copia de seguridad del registro antes de modificarlo. Entonces, puede restaurar el registro si se produce un problema. Para obtener más información acerca de cómo hacer copia de seguridad y restaurar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
        322756 Cómo hacer copia de seguridad y restaurar el registro de Windows


        En el Editor del registro, busque y, a continuación, haga clic en la subclave del registro siguiente:
        HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
      4. Seleccione nuevoy, a continuación, haga clic en clave. En el panel izquierdo del Editor del registro, observe que la nueva clave #1 (el nombre de una nueva subclave del registro) está seleccionado para su edición.
      5. Escriba el ImageName Para reemplazar la nueva clave #1y, a continuación, presione ENTRAR.

        Nota: ImageName es un marcador de posición para el nombre de imagen del proceso que aloja el servicio que desea depurar. Por ejemplo, si desea depurar un servicio alojado por un proceso que tiene MyService.exe como el nombre de imagen, escriba MyService.exe.
      6. Haga clic en la subclave del registro que ha creado en el paso e.
      7. Seleccione nuevoy, a continuación, haga clic en Valor de cadena. En el panel derecho del Editor del registro, tenga en cuenta que el nuevo valor #1, el nombre de una nueva entrada del registro, es seleccionado para su edición.
      8. Reemplazar el nuevo valor #1Depurador, y, a continuación, presione ENTRAR.
      9. Haga clic en la entrada del registro de depurador que creó en el paso h y, a continuación, haga clic en Modificar. Aparecerá el cuadro de diálogo Editar cadena .
      10. En el cuadro de texto información del valor , escriba DebuggerPathy, a continuación, haga clic en Aceptar.

        Nota: DebuggerPath es un marcador de posición para la ruta de acceso completa del depurador que desea utilizar. Por ejemplo, si desea utilizar el depurador WinDbg para depurar un servicio, puede escribir una ruta de acceso completa que es similar al siguiente:
        C:\progra~1\Debugg~1\windbg.exe
  2. Para que aparezca en el escritorio de la ventana del depurador, y interactuar con el depurador, que el servicio interactivo. Si haces no poner el servicio interactivo, el depurador se iniciará pero olemos y que el usuario no puede emitir comandos. Para que el servicio interactivo, utilice uno de los métodos siguientes:
    • Método 1: Utilice la consola de servicios
      1. Haga clic en Inicioy seleccione programas.
      2. En el menú programas , seleccione Herramientas administrativasy, a continuación, haga clic en Servicios. Aparece la consola de Servicios .
      3. En el panel derecho de la consola de Servicios , haga clic enServiceNamey, a continuación, haga clic en Propiedades.

        Nota: ServiceName es un marcador de posición para el nombre del servicio que desea depurar.
      4. En la ficha Iniciar sesión , haga clic para activar la casilla de verificación Permitir a los servicios interactuar con el escritorio en la cuenta del sistema Localy, a continuación, haga clic en Aceptar.
    • Método 2: Utilice el Editor del registro
      1. En el Editor del registro, busque y, a continuación, haga clic en la subclave del registro siguiente:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName
        Nota: Reemplazar ServiceName con el nombre del servicio que desea depurar. Por ejemplo, si desea depurar un servicio que se denomina MiServicio, busque y, a continuación, haga clic en la clave del registro siguiente:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService
      2. En el campo de nombre en el panel derecho del Editor del registro, haga clic en tipoy, a continuación, haga clic en Modificar. Aparecerá el cuadro de diálogo Editar valor DWORD .
      3. Cambiar el texto en el cuadro de texto datos de valor al resultado de la operación OR binaria con el valor binario del texto actual y el valor binario, 0 x 00000100, como los dos operandos. El valor binario, 0 x 00000100, corresponde a la constante SERVICE_INTERACTIVE_PROCESS definida en el archivo de encabezado WinNT.h en su equipo. Esta constante especifica que un servicio interactivo en la naturaleza.
  3. Cuando se inicia un servicio, el servicio se comunica con el servicio Administrador de Control de tiempo debe tener el servicio para iniciar (el tiempo-outperiod para el servicio). Si el Administrador de Control de servicio no recibe un aviso de "iniciado el servicio" del servicio dentro de este periodo de tiempo de espera, el Administrador de Control de acceso finaliza el proceso que aloja el servicio. Período de esta vez suele ser menos de 30 segundos. Si no ajusta el período de esta vez, el Administrador de Control de servicio finaliza al depurador del proceso y exadjuntas mientras se intenta depurar. Para ajustar este tiempo-outperiod, siga estos pasos:
    1. En el Editor del registro, busque y, a continuación, haga clic en la subclave del registro siguiente:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
    2. Seleccione nuevoy, a continuación, haga clic en Valor DWORD. En el panel derecho del Editor del registro, tenga en cuenta que el nuevo valor #1 (el nombre de una nueva entrada del registro) se ha seleccionado para su edición.
    3. Escriba el ServicesPipeTimeout Para reemplazar el nuevo valor #1y, a continuación, presione ENTRAR.
    4. Haga clic en la entrada del registro de ServicesPipeTimeout que creó en el paso c y, a continuación, haga clic en Modificar. Aparecerá el cuadro de diálogo Editar valor DWORD .
    5. En el cuadro de texto información del valor , escriba TimeoutPeriody, a continuación, haga clic en Aceptar

      Nota: TimeoutPeriod es un marcador de posición para el valor del tiempo de espera (en milisegundos) que se va a establecer para el servicio. Por ejemplo, si desea establecer el tiempo de espera de 24 horas (86400000 milisegundos), escriba 86400000.
    6. Reinicie el equipo. Debe reiniciar el equipo para Service Control Manager para aplicar este cambio.
  4. Inicie el servicio de Windows. Para ello, siga estos pasos:
    1. Haga clic en Inicioy seleccione programas.
    2. En el menú programas , seleccione Herramientas administrativasy, a continuación, haga clic en Servicios. Aparece la consola de Servicios .
    3. En el panel derecho de la consola de Servicios , haga clic enServiceNamey, a continuación, haga clic en Inicio.

      Nota: ServiceName es un marcador de posición para el nombre del servicio que desea depurar.
volver al principio

Solución de problemas

Antes de intentar depurar un servicio a través de una red, asegúrese de que los símbolos y el origen de los archivos que el servicio utiliza areaccessible desde el equipo donde se ejecutará el servicio. Para ello, utilice uno de los métodos siguientes:
  • Conceder permisos de acceso de lectura al menos a todos los usuarios de la carpeta de suEquipo que contiene los símbolos y los archivos de código fuente que utiliza el servicio.
  • Copie estos símbolos y los archivos que utiliza el servicio en el equipo de origen donde el imprimen de servicio.
volver al principio
Referencias
Para descargar las herramientas y las utilidades que se mencionan en este artículo, visite el siguiente sitio Web de Microsoft:
Herramientas de depuración para Windows: visión general
http://www.Microsoft.com/whdc/devtools/debugging/default.mspx
Para obtener más información, visite los siguientes sitios Web de Microsoft Developer Network (MSDN):
Uso de la utilidad de indicadores globales
http://msdn2.Microsoft.com/en-us/library/ms792858.aspx
volver al principio

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 824344 - Última revisión: 01/03/2015 02:53:00 - Revisión: 9.0

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

  • kbimghlp kbregistry kbservice kbdebug kbmisctools kbhowtomaster kbmt KB824344 KbMtes
Comentarios
y: none; " src="https://c1.microsoft.com/c.gif?DI=4050&did=1&t=">index -->
Uruguay - Español
대한민국 - 한국어
España - Español
Paraguay - Español
Venezuela - Español
://c1.microsoft.com/c.gif?DI=4050&did=1&t=">ment.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> 050&did=1&t=">.microsoft.com/ms.js'><\/script>");