Símbolos

Um símbolo é uma unidade nomeada de dados ou código de um arquivo de origem que aparece em um módulo. As informações sobre símbolos podem incluir o nome, o tipo (se aplicável), o endereço ou o registro em que eles estão armazenados e quaisquer símbolos pai ou filho. Exemplos de símbolos incluem variáveis (locais e globais), funções e qualquer ponto de entrada em um módulo.

As informações de símbolo são usadas pelo mecanismo para ajudar a interpretar dados e código no destino. Com essas informações, o mecanismo pode pesquisar símbolos por nome ou local na memória e fornecer uma descrição de um símbolo.

O mecanismo obtém suas informações sobre símbolos de arquivos de símbolo, que estão localizados no sistema de arquivos local ou carregados de um servidor de símbolos. Ao usar um servidor de símbolos, o mecanismo usará automaticamente a versão correta do arquivo de símbolo para corresponder ao módulo no destino. Os arquivos de símbolo podem ser carregados sempre que o módulo correspondente é carregado ou podem ser carregados conforme necessário.

Nota Geralmente, a otimização de compiladores não inclui informações precisas em arquivos de símbolo. Isso pode fazer com que o mecanismo interprete incorretamente o valor de algumas variáveis, pois o local ou o tempo de vida da variável podem ser descritos incorretamente, fazendo com que o mecanismo veja a parte errada da memória ou pense que um valor variável está em tempo real quando está inoceso (ou vice-versa). Também é possível que um compilador de otimização altere a ordem de execução ou divida uma função em várias partes. Os melhores resultados geralmente são obtidos durante a depuração de código nãotimizado.

Informações adicionais

Para obter detalhes sobre como usar símbolos, consulte Usando símbolos. Para ter uma visão geral do uso de arquivos de símbolo e servidores de símbolos, consulte Símbolos na seção Depurador desta documentação.