Compartilhar via


Localizando símbolos

Depois que um arquivo de símbolo é carregado no manipulador de símbolos, um aplicativo pode usar as funções do localizador de símbolos para retornar informações de símbolo para um endereço especificado. Essas funções também podem encontrar um nome de arquivo de código-fonte e um local de número de linha para um endereço.

Enumerando arquivos de símbolo

Para recuperar uma lista de todos os arquivos de símbolo carregados pelo nome do módulo, chame a função SymEnumerateModules64. Para obter um exemplo, consulte Enumerando módulos de símbolo. Para recuperar uma lista de símbolos para um determinado módulo, chame a função SymEnumSymbols. Para obter um exemplo, consulte Enumerando símbolos.

Recuperando símbolos por endereço

Para recuperar informações simbólicas para um endereço específico, use a função SymFromAddr. Essa função recupera informações e as armazena em uma estrutura SYMBOL_INFO . Como os nomes de símbolos são de comprimento variável, você deve fornecer espaço de buffer adicional após a declaração de estrutura SYMBOL_INFO. Para obter um exemplo, consulte Recuperando informações de símbolo por endereço.

Observe que o endereço não precisa estar em um limite de símbolo. Se o endereço vier após o início de um símbolo, mas antes do final do símbolo (o início do símbolo mais o tamanho do símbolo), a função localizará o símbolo.

Recuperando símbolos por nome de símbolo

Para recuperar informações simbólicas em uma estrutura SYMBOL_INFO para um módulo específico e nome de símbolo, use a função SymFromName. Se o carregamento de símbolo adiado estiver definido, SymFromName tentará carregar o arquivo de símbolo de um módulo se ele ainda não tiver sido carregado. Para especificar um nome de módulo junto com um nome de símbolo, use a sintaxe Module!SymName. O caractere "!" delimita o nome do módulo do nome do símbolo. Para obter um exemplo, consulte Recuperando informações de símbolo por nome.

Recuperando números de linha por endereço

Para recuperar o local do código-fonte para um endereço específico, use a função SymGetLineFromAddr64. Essa função preenche uma estrutura IMAGEHLP_LINE64 que inclui o nome do arquivo de origem e o local do número da linha referidos pelo endereço especificado. Para obter um exemplo, consulte Recuperando informações de símbolo por endereço.

Recuperando números de linha por nome de símbolo

Para recuperar o local do código-fonte para um nome de símbolo específico, use a função SymGetLineFromName64. Essa função é semelhante a SymGetSymFromName64, mas recupera uma estrutura IMAGEHLP_LINE64. Para usar SymGetLineFromAddr64 ou SymGetLineFromName64, você deve definir a opção de linhas de carregamento (SYMOPT_LOAD_LINES) usando a função SymSetOptions. Para obter um exemplo, consulte Recuperando informações de símbolo por nome.