Compartir a través de


Carga de símbolos diferidos

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 de símbolos diferidos 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 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 todavía incluye 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 símbolos que no tienen ningún prefijo de módulo mediante la opción Resolver símbolos sin calificar en el menú Depurar .

Puede invalidar la carga de símbolos diferidos mediante el comando ld (Símbolos de carga) o el comando .reload (Módulo de recarga) con la opción /f. Estos obligan a cargar inmediatamente los símbolos especificados, 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 del 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.