Utilice el servidor de símbolos de Microsoft para obtener archivos de símbolos de depuración

Este artículo describe cómo se hace referencia el servidor de símbolos de Microsoft para obtener información de depuración de símbolo.

Debe tener información de símbolos al depurar aplicaciones con varias herramientas de Microsoft. Los archivos de símbolos proporcionan un espacio físico de las funciones contenidas en archivos ejecutables y bibliotecas de vínculos dinámicos (DLL). Además, los archivos de símbolos pueden presentar un plan de desarrollo de las llamadas de función que conducen hasta el momento del error. Por ejemplo, debe tener los símbolos cuando se volcar las pilas de llamadas dentro de un depurador. En este artículo se describe cómo utilizar el servidor de símbolos de Microsoft mediante la especificación de la siguiente dirección URL a diversas herramientas de depuración: http://msdl.Microsoft.com/download/symbols

Nota http://msdl.Microsoft.com/download/symbols no es accesible vía navegador, sólo se diseñó para tener acceso mediante el depurador.

Mediante la tecnología de servidor de símbolos

El servidor de símbolos de Microsoft está construido con la tecnología de SymSrv (SymSrv.dll) que se proporciona con el paquete de herramientas de depuración para Windows. SymSrv crea una caché de símbolos local para la resolución de símbolos rápidas y automáticas.

Es tan fácil de usar el servidor de símbolos que va a utilizar la sintaxis apropiada en la ruta de acceso de símbolos.Normalmente, la sintaxis tiene el formato siguiente:
SRV *la carpeta de símbolos local*http://msdl.microsoft.com/download/symbols
donde la carpeta de símbolos local es cualquier unidad o recurso compartido que se utiliza como un destino de símbolo.

Por ejemplo, para establecer la ruta de acceso del símbolo en el depurador WinDbg, escriba el comando siguiente en la ventana de comandos del depurador:
Sympath SRV*f:\localsymbols*http://msdl.microsoft.com/download/symbols
Para obtener la funcionalidad de SymSrv más reciente, debe instalar el paquete de depuración más reciente. Para obtener la última versión del paquete de herramientas de depuración para Windows, visite el siguiente sitio Web de Microsoft:

Herramientas de depuración de Microsoft
Windows Driver Kit 8   (Windows 8/7/Vista)
Windows Driver Kit 7.1.0 (Windows 7/Vista/XP)

Para obtener más información acerca de la tecnología de servidor de símbolos, consulte la Ayuda que se incluye con el paquete de herramientas de depuración para Windows de la Debuggers.chm.

Establecer la variable de entorno _NT_SYMBOL_PATH

Las herramientas de depuración comunes de Microsoft utilizan la tecnología de SymSrv si proporciona la sintaxis correctasymsrv en la variable de entorno _NT_SYMBOL_PATH. Estas herramientas incluyen automáticamente todo lo que proporcionan en la variable como la ruta de acceso del símbolo.

Puede establecer esta variable como una variable del sistema o como una variable de entorno del usuario. Para hacer esto desde el escritorio, haga clic en Mi PCy, a continuación, haga clic en Propiedades. En la ficha Avanzadas , haga clic enVariables de entorno.

También puede establecer esta variable temporalmente en un símbolo del sistema. De esta forma, todas las aplicaciones que se inician a través de la línea de comandos heredan esta configuración. Por ejemplo:
Establecer _NT_SYMBOL_PATH = symsrv*symsrv.dll*f:\localsymbols*http://msdl.microsoft.com/download/symbols

Con el servidor de símbolos de Microsoft WinDbg

Para utilizar el sitio Web del servidor de símbolos desde WinDbg, siga estos pasos:

  1. Iniciar al depurador de Windows (WinDbg.exe).
  2. En el menú archivo , haga clic en La ruta de archivo de símbolos.
  3. En el cuadro ruta de acceso del símbolo , escriba el comando siguiente:
    SRV *la carpeta local de símbolos*http://msdl.microsoft.com/download/symbols
    en -la carpeta local de símbolos- es la carpeta en la que va a copiar la caché de símbolos local. Los símbolos de depuración se descargan en esta ubicación.

    Nota Puede apuntar a cualquier ruta de acceso local o un recurso compartido que puede llegar su equipo; no debe ser una ubicación en el disco duro del equipo.

Como alternativa, puede utilizar el comando sympath en un símbolo del sistema para establecer la ruta de acceso de símbolos.

Puede combinar la sintaxis de symsrv con otras rutas de acceso de símbolos. Por ejemplo, utilice la siguiente sintaxis para especificar dos o más rutas de acceso de símbolos:
f:\BusObjSymbols;SRV*f:\localsymbols*http://msdl.Microsoft.com/download/symbols
Esta sintaxis separa las rutas de acceso de símbolos con un punto y coma.

Cuando empieza a depurar un archivo de volcado o una aplicación, el depurador de Windows comprueba si la información de símbolos para un módulo de carga está en la carpeta local. Si la información de símbolos del módulo no se encuentra en la carpeta local, WinDbg intenta descargar el archivo de símbolos apropiados o archivos desde el servidor de símbolos.

Si utiliza la misma caché local cuando se depura una aplicación en un equipo que tiene distintas versiones, símbolos para las distintas versiones se descargan y almacenan los símbolos de la primera. El formato SymStore almacena los archivos según la marca de tiempo y el tamaño de la imagen (o suma de comprobación). Como resultado, símbolos de las distintas versiones del producto pueden coexistir en paralelo. (SymStore.exe es una utilidad del paquete de herramientas de depuración para Windows que genera un servidor de símbolos. Para obtener más información, consulte la documentación del producto.)

Dado que puede tardar tiempo para descargar los archivos de símbolos, tenga en cuenta que el depurador puede parecer que deja de responder (se bloquea) la primera vez que depura una aplicación. Esto ocurre porque la mayoría de los archivos de símbolos para el sistema de archivos DLL (como Ntdll.dll, Kernel32.dll y otros) se debe descargar.

Mediante la utilidad SymChk.exe para descargar símbolos

Puede utilizar la utilidad SymChk.exe para comprobar símbolos y para crear una caché de símbolos local en una forma conveniente, no invasiva. La utilidad SymChk.exe se incluye con el paquete de herramientas de depuración para Windows.SymChk.exe es una herramienta de línea de comandos. Puede agregar la carpeta del paquete de herramientas de depuración para Windows a la variable de entorno PATH del sistema para que esta herramienta puede tener acceso fácilmente desde cualquier símbolo.

Para utilizar la utilidad SymChk.exe para descargar archivos de símbolos para todos los componentes en la carpeta Windows\System32, utilice la siguiente línea de comandos:
Symchk /r c:\windows\system32 /s SRV*c:\symbols\*http://msdl.microsoft.com/download/symbols
En este ejemplo:

  • c:\windows\system32 /r busca todos los símbolos para los archivos en la carpeta System32 y todas las subcarpetas.
  • /s SRV*c:\symbols*http://msdl.microsoft.com/download/symbols especifica la ruta de acceso del símbolo que se utilizará para la resolución de símbolos. En este caso, c:\symbols es la carpeta local donde se copiarán los símbolos desde el servidor de símbolos.

Para obtener más información acerca de las opciones de línea de comandos para SymChk.exe, escriba symchk /? en un símbolo del sistema. Otras opciones incluyen la capacidad de especificar el nombre o identificador de proceso (PID) de un archivo ejecutable que se está ejecutando.