Carregamento de símbolo adiado

Por padrão, as informações do símbolo não são realmente carregadas quando os módulos de destino são carregados. Em vez disso, os símbolos são carregados pelo depurador conforme necessário. Isso é chamado de carregamento de símbolo adiado ou carregamento lento de símbolo. Quando essa opção está habilitada, o depurador carrega símbolos sempre que encontra um símbolo não reconhecido.

Quando o caminho do símbolo é alterado, por exemplo, usando o comando .sympath (Definir caminho do símbolo), todos os módulos carregados com símbolos de exportação são recarregados lentamente. Os símbolos de módulos com símbolos PDB completos serão recarregados lentamente se o novo caminho não incluir mais o caminho original que foi usado para carregar os símbolos PDB. Se o novo caminho ainda incluir o caminho original para o arquivo de símbolo PDB, esses símbolos não serão recarregados lentamente.

Quando o carregamento de símbolo adiado está desabilitado, a inicialização do processo pode ser muito mais lenta, pois todos os símbolos são lidos sempre que um módulo é carregado.

No WinDbg, o comportamento de carregamento de símbolo adiado pode ser modificado para símbolos que não têm prefixo de módulo usando a opção Resolver Símbolos Não Qualificados no menu Depurar.

Você pode substituir o carregamento de símbolo adiado usando o comando ld (Carregar Símbolos) ou o comando .reload (Recarregar Módulo) com a opção /f. Isso força o carregamento imediato dos símbolos especificados, embora o carregamento de outros símbolos seja adiado.

Por padrão, o carregamento de símbolo adiado está habilitado. No CDB e no KD, a opção de linha de comando -s desativará essa opção. Ele também pode ser desativado no CDB usando a variável LazyLoad no arquivo tools.ini . Depois que o depurador estiver em execução, essa opção poderá ser ativada ou desativada usando .symopt+0x4 ou .symopt-0x4, respectivamente.