Share via


Carga diferida de símbolos

De forma predeterminada, la información de símbolos no se carga realmente cuando se cargan los módulos de destino. En su lugar, el depurador carga los símbolos según sea necesario. Esto se denomina carga diferida de símbolos o carga diferida de símbolos. Cuando esta opción está habilitada, el depurador carga símbolos cada vez que encuentra un símbolo no reconocido.

Cuando se cambia la ruta de acceso del símbolo, por ejemplo, mediante el comando .sympath (Establecer ruta de acceso de símbolo), todos los módulos cargados con símbolos de exportación se vuelven a cargar de forma diferida. Los símbolos de módulos con símbolos PDB completos se volverán a cargar de forma diferida si la nueva ruta de acceso ya no incluye la ruta de acceso original que se usó para cargar los símbolos de PDB. Si la nueva ruta de acceso sigue incluyendo la ruta de acceso original al archivo de símbolos PDB, esos símbolos no se volverán a cargar de forma diferida.

Cuando la carga de símbolos diferida está deshabilitada, el inicio del proceso puede ser mucho más lento, ya que todos los símbolos se leen cada vez que se carga un módulo.

En WinDbg, el comportamiento de carga de símbolos diferido se puede modificar para los símbolos que no tienen prefijo de módulo mediante la opción Resolver símbolos sin calificar en el menú Depurar .

Puede invalidar la carga de símbolos diferida mediante el comando ld (Cargar símbolos) o el comando .reload (Módulo de recarga) con la opción /f . Estos obligan a que los símbolos especificados se carguen inmediatamente, aunque se aplaza la carga de otros símbolos.

De forma predeterminada, la carga de símbolos diferida está habilitada. 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.