Opciones de símbolos
Hay varias opciones disponibles para controlar cómo se cargan y usan los símbolos. Estas opciones se pueden establecer de varias maneras.
En la tabla siguiente se enumeran estas opciones de símbolo:
Marca | Nombre de la opción | Valor predeterminado en el depurador | Valor predeterminado en DBH |
---|---|---|---|
0x1 |
Activado |
Activado |
|
0x2 |
Activado |
Activado |
|
0x4 |
Activado |
Desactivado |
|
0x8 |
Desactivado |
Desactivado |
|
0x10 |
Desactivado en KD y CDB Activado en WinDbg |
Activado |
|
0x20 |
Activado |
Desactivado |
|
0x40 |
Desactivado |
Desactivado |
|
0x80 |
Desactivado |
Desactivado |
|
0x100 |
Desactivado |
Desactivado |
|
0x200 |
Activado |
Desactivado |
|
0x400 |
Off |
Por |
|
0x800 |
Off |
Por |
|
0x1000 |
Desactivado |
Desactivado |
|
0x2000 |
SYMOPT_INCLUDE_32BIT_MODULES |
Desactivado |
Desactivado |
0x4000 |
Desactivado |
Desactivado |
|
0x8000 |
Desactivado |
Desactivado |
|
0x10000 |
Activado |
Activado |
|
0x20000 |
Activado |
Desactivado |
|
0x40000 |
Desactivado |
Desactivado |
|
0x80000 |
Activado en KD y CDB Desactivado en WinDbg |
Desactivado |
|
0x80000000 |
Desactivado |
Desactivado |
Cambio de la configuración de la opción de símbolo
El comando .symopt (Establecer opciones de símbolo) se puede usar para cambiar o mostrar la configuración de la opción de símbolo. Además, hay disponibles varios parámetros de línea de comandos y comandos para cambiar esta configuración; se enumeran en las secciones individuales SYMOPT_XXX .
También puede controlar toda la configuración a la vez con la opción de línea de comandos-sflags. Esta opción se puede seguir con un número decimal o con un número hexadecimal precedido por 0x. Se recomienda usar hexadecimal, ya que las marcas de símbolo se alinean correctamente de esa manera. Tenga cuidado con el uso de este método, ya que establece todo el campo de bits y invalidará todos los valores predeterminados del controlador de símbolos. Por ejemplo, -sflags 0x401 no solo activará SYMOPT_EXACT_SYMBOLS y SYMOPT_CASE_INSENSITIVE, sino que también desactivará todas las demás opciones que normalmente están activadas de forma predeterminada.
El valor predeterminado de los bits de marca total es 0x30237 en WinDbg, 0xB0227 en CDB y KD, y 0x10C13 en la herramienta DBH, cuando estos programas se inician sin ninguna opción de línea de comandos relacionada con símbolos.
SYMOPT_CASE_INSENSITIVE
Esta opción de símbolo hace que todas las búsquedas de nombres de símbolo no distinguen mayúsculas de minúsculas.
Esta opción está activada de forma predeterminada en todos los depuradores. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x1 o .symopt-0x1 , respectivamente.
Esta opción está activada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +1 o symopt -1, respectivamente.
SYMOPT_UNDNAME
Esta opción de símbolo hace que los nombres de símbolos públicos no se descoraten cuando se muestren, y hace que las búsquedas de nombres de símbolo ignoren las decoraciones de símbolos. Los nombres de símbolos privados nunca están decorados, independientemente de si esta opción está activa. Para obtener información sobre las decoraciones de nombres de símbolos, vea Símbolos públicos y privados.
Esta opción está activada de forma predeterminada en todos los depuradores. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x2 o .symopt-0x2 , respectivamente.
Esta opción está activada de forma predeterminada en DBH. Se desactiva si se usa la opción de línea de comandos -d. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +2 o symopt -2, respectivamente.
SYMOPT_DEFERRED_LOADS
Esta opción de símbolo se denomina carga de símbolos diferida o carga diferida de símbolos. Cuando está activo, los símbolos no se cargan realmente cuando se cargan los módulos de destino. En su lugar, el depurador carga los símbolos según sea necesario. Consulte Carga diferida de símbolos para obtener más información.
Esta opción está activada de forma predeterminada en todos los depuradores. En CDB y KD, la opción de línea de comandos -s desactivará esta opción. También se puede desactivar en CDB mediante la variable LazyLoad en el archivo tools.ini . Una vez que se ejecuta el depurador, esta opción se puede activar o desactivar mediante .symopt+0x4 o .symopt-0x4, respectivamente.
Esta opción está desactivada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +4 o symopt -4, respectivamente.
SYMOPT_NO_CPP
Esta opción de símbolo desactiva la traducción de C++. Cuando se establece esta opción de símbolo, :: se reemplaza por __ en todos los símbolos.
Esta opción está desactivada de forma predeterminada en todos los depuradores. Se puede activar mediante la opción de línea de comandos -snc. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x8 o .symopt-0x8 , respectivamente.
Esta opción está desactivada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +8 o symopt -8, respectivamente.
SYMOPT_LOAD_LINES
Esta opción de símbolo permite leer la información del número de línea de los archivos de origen. Esta opción debe estar activada para que la depuración de origen funcione correctamente.
En KD y CDB, esta opción está desactivada de forma predeterminada; en WinDbg, esta opción está activada de forma predeterminada. En CDB y KD, la opción de línea de comandos -lines activará esta opción. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x10 o .symopt-0x10 , respectivamente. También se puede activar y desactivar mediante el comando .lines (Alternar compatibilidad con líneas de origen).
Esta opción está activada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +10 o symopt -10, respectivamente.
SYMOPT_OMAP_FIND_NEAREST
Cuando el código se ha optimizado y no hay ningún símbolo en la ubicación esperada, esta opción hace que se use en su lugar el símbolo más cercano.
Esta opción está activada de forma predeterminada en todos los depuradores. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x20 o .symopt-0x20, respectivamente.
Esta opción está activada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +20 o symopt -20, respectivamente.
SYMOPT_LOAD_ANYTHING
Esta opción de símbolo reduce la selección del controlador de símbolos cuando se intenta buscar coincidencias con símbolos.
Esta opción está desactivada de forma predeterminada en todos los depuradores. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x40 o .symopt-0x40 , respectivamente.
Esta opción está desactivada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +40 o symopt -40, respectivamente.
SYMOPT_IGNORE_CVREC
Esta opción de símbolo hace que el controlador de símbolos omita el registro CV en el encabezado de imagen cargado al buscar símbolos.
Esta opción está desactivada de forma predeterminada en todos los depuradores. Se puede activar mediante la opción de línea de comandos -sicv. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x80 o .symopt-0x80 , respectivamente.
Esta opción está desactivada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +80 o symopt -80, respectivamente.
SYMOPT_NO_UNQUALIFIED_LOADS
Esta opción de símbolo deshabilita la carga automática del controlador de símbolos de los módulos. Cuando se establece esta opción y el depurador intenta coincidir con un símbolo, solo buscará los módulos que ya se han cargado.
Esta opción se puede usar como defensa contra la niebla de un nombre de símbolo. Normalmente, un símbolo con tipo incorrecto hará que el depurador se detenga mientras busca en todos los archivos de símbolos descargados. Cuando esta opción está activa, no se encontrará un símbolo con tipo erróneo en los módulos cargados y, a continuación, la búsqueda finalizará.
Esta opción está desactivada de forma predeterminada en todos los depuradores. Se puede activar mediante la opción de línea de comandos -snul. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x100 o .symopt-0x100 , respectivamente.
Esta opción está desactivada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +100 o symopt -100, respectivamente.
SYMOPT_FAIL_CRITICAL_ERRORS
Esta opción de símbolo hace que se supriman los cuadros de diálogo de error de acceso a archivos.
Si esta opción está desactivada, los errores de acceso a archivos, como "unidad no lista", encontrados durante la carga de símbolos, darán lugar a que aparezcan cuadros de diálogo. Si esta opción está activada, estos cuadros se suprimen y todos los errores de acceso reciben una respuesta de "error".
Esta opción está activada de forma predeterminada en todos los depuradores. Se puede desactivar mediante la opción de línea de comandos -sdce. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x200 o .symopt-0x200 , respectivamente.
Esta opción está desactivada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +200 o symopt -200, respectivamente.
SYMOPT_EXACT_SYMBOLS
Esta opción de símbolo hace que el depurador realice una evaluación estricta de todos los archivos de símbolos.
Cuando esta opción está activada, incluso la menor discrepancia entre los archivos de símbolos y las expectativas del controlador de símbolos hará que se omitan los símbolos.
Esta opción está desactivada de forma predeterminada en todos los depuradores. Se puede activar mediante la opción de línea de comandos -ses. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x400 o .symopt-0x400 , respectivamente.
La opción de línea de comandos -failinc también activa SYMOPT_EXACT_SYMBOLS. Además, si está depurando un minivolcado en modo de usuario o un minivolcado en modo kernel, -failinc impedirá que el depurador cargue los módulos cuyas imágenes no se puedan asignar.
Esta opción está activada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +400 o symopt -400, respectivamente.
SYMOPT_ALLOW_ABSOLUTE_SYMBOLS
Esta opción de símbolo permite a DbgHelp leer símbolos almacenados en una dirección absoluta en la memoria. Esta opción no es necesaria en la gran mayoría de los casos.
Esta opción está desactivada de forma predeterminada en todos los depuradores. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x800 o .symopt-0x800 , respectivamente.
Esta opción está activada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +800 o symopt -800, respectivamente.
SYMOPT_IGNORE_NT_SYMPATH
Esta opción de símbolo hace que el depurador omita la configuración de la variable de entorno para la ruta de acceso del símbolo y la ruta de acceso de la imagen ejecutable.
Esta opción está desactivada de forma predeterminada en todos los depuradores. Se puede activar mediante la opción de línea de comandos -sins. Sin embargo, no se puede controlar mediante .symopt una vez que se ejecuta el depurador, ya que las variables de entorno solo se leen en el inicio.
Esta opción está desactivada de forma predeterminada en DBH y DBH la omite en todos los casos.
SYMOPT_PUBLICS_ONLY
Esta opción de símbolo hace que DbgHelp omita los datos de símbolos privados y busque solo la tabla de símbolos públicos para obtener información de símbolos. Esto emula el comportamiento de DbgHelp antes de agregar compatibilidad con estos tipos. consulte Símbolos públicos y privados.
Esta opción está desactivada de forma predeterminada en todos los depuradores. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x4000 o .symopt-0x4000 , respectivamente.
Esta opción está desactivada de forma predeterminada en DBH. Se activa si se usa la opción de línea de comandos -d. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +4000 o symopt -4000, respectivamente.
SYMOPT_NO_PUBLICS
Esta opción de símbolo impide que DbgHelp busque en la tabla de símbolos públicos. Esto puede hacer que la enumeración de símbolos y las búsquedas de símbolos sean mucho más rápidas. Si le preocupa únicamente la velocidad de búsqueda, la opción SYMOPT_AUTO_PUBLICS suele ser preferible a esta. Para obtener información sobre la tabla de símbolos públicos, vea Símbolos públicos y privados.
Esta opción está desactivada de forma predeterminada en todos los depuradores. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x8000 o .symopt-0x8000 , respectivamente.
Esta opción está desactivada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +8000 o symopt -8000, respectivamente.
SYMOPT_AUTO_PUBLICS
Esta opción de símbolo hace que DbgHelp busque la tabla de símbolos públicas en un archivo .pdb solo como último recurso. Si se encuentran coincidencias al buscar los datos de símbolos privados, no se buscarán los símbolos públicos. Esto mejora la velocidad de búsqueda de símbolos.
Esta opción está activada de forma predeterminada en todos los depuradores. Se puede desactivar mediante la opción de línea de comandos -sup. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x10000 o .symopt-0x10000, respectivamente.
Esta opción está activada de forma predeterminada en DBH. Se desactiva si se usa la opción de línea de comandos -d. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +10000 o symopt -10000, respectivamente.
SYMOPT_NO_IMAGE_SEARCH
Esta opción de símbolo impide que DbgHelp busque una copia de la imagen cuando se carguen símbolos.
Esta opción está activada de forma predeterminada en todos los depuradores. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x20000 o .symopt-0x20000, respectivamente.
Esta opción está desactivada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +20000 o symopt -20000, respectivamente.
SYMOPT_SECURE
(solo modo kernel) Esta opción de símbolo indica si el modo seguro está activo.
El modo seguro está desactivado de forma predeterminada en todos los depuradores. Se puede activar mediante la opción de línea de comandos -secure. Si el depurador se está ejecutando, está en modo inactivo y no ha establecido ningún servidor de depuración, el modo seguro se puede activar mediante .symopt+0x40000 o .secure (Activar modo seguro).
Esta opción está desactivada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +40000 o symopt -40000, respectivamente.
El modo seguro nunca se puede desactivar una vez que se haya activado.
SYMOPT_NO_PROMPTS
Esta opción de símbolo suprime los cuadros de diálogo de autenticación del servidor proxy. Esto puede dar lugar a que SymSrv no pueda acceder a un almacén de símbolos en Internet.
Para más información, consulte Firewalls y servidores proxy.
En KD y CDB, esta opción está activada de forma predeterminada; en WinDbg, esta opción está desactivada de forma predeterminada. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante el comando .symopt+0x80000 o .symopt-0x80000, respectivamente, seguido del comando .reload (Módulo de recarga). También se puede activar y desactivar mediante los avisos !sym desactivados y los comandos de extensión de avisos !sym, seguidos del comando .reload (Módulo de recarga).
Esta opción está desactivada de forma predeterminada en DBH. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +80000 o symopt -80000, respectivamente.
-SYMOPT_DEBUG
Esta opción de símbolo activa la carga de símbolos ruidosos. Esto indica al depurador que muestre información sobre su búsqueda de símbolos.
El nombre de cada archivo de símbolos se mostrará a medida que se carga. Si el depurador no puede cargar un archivo de símbolos, mostrará un mensaje de error. Los mensajes de error de los archivos .pdb se mostrarán en texto. Los mensajes de error para los archivos .dbg tendrán la forma de un código de error; estos códigos se explican en el archivo winerror.h.
Si un archivo de imagen se carga únicamente para recuperar información de encabezado simbólico, también se mostrará.
Esta opción está desactivada de forma predeterminada en todos los depuradores. Se puede activar mediante la opción de línea de comandos -n. Una vez que se ejecuta el depurador, se puede activar o desactivar mediante .symopt+0x80000000 o .symopt-0x80000000, respectivamente. También puede activarse y desactivarse mediante los comandos de extensión !sym ruidoso y !sym quiet .
Nota Esta opción no debe confundirse con la carga de origen ruidosa, que está controlada por el comando .srcnoisy (Carga de origen ruidoso).
Esta opción está desactivada de forma predeterminada en DBH. Se puede activar mediante la opción de línea de comandos -n. Una vez que DBH se está ejecutando, se puede activar o desactivar mediante symopt +8000000000 o symopt -800000000, respectivamente. También se puede activar y desactivar mediante los comandos detallados activados y desactivados detallados.