Partilhar via


Método IDebugHostMemory3::CanonicalizeLocation (dbgmodel.h)

CanonicalizeLocation é um método que transforma um determinado local em sua "representação canônica", que é uma forma padrão escolhida. Ele pode lidar com diferentes tipos de locais, por exemplo, memória virtual e registro, que podem ser representados de várias maneiras.

Um exemplo clássico em que essa função pode ser útil envolve as Ferramentas de Depuração para Windows (dbgeng) que historicamente assinam estende endereços de 32 bits para 64 bits, criando dificuldades para representar e distinguir determinadas regiões de endereço em processos de 32 bits com reconhecimento de endereço alto.

Observe que comparar locais ou endereços obtidos de componentes que assinam endereços estendidos de sinal de relatório em relação a zero estendidos pode resultar em falhas imprevistas. Você pode evitar tais percalços chamando CanonicalizeLocation() de antemão. Tenha em mente que esse método não transforma o tipo de um local. Para transformar o tipo, você deve chamar LinearizeLocation().

Sintaxe

HRESULT CanonicalizeLocation(
  IDebugHostContext *context,
  Location          location,
  Location          *pCanonicalizedLocation
);

Parâmetros

context

O contexto atual.

location

O local que você deseja canonizar.

pCanonicalizedLocation

Ponteiro para onde o local canonizado será armazenado.

Valor de retorno

Esse método retorna HRESULT que indica êxito ou falha.

Observações

Embora esse método altere a representação de um local para sua forma canônica, ele não altera o tipo real do local. Use o método LinearizeLocation() para executar essa transformação de tipo.

Requisitos

Requisito Valor
cabeçalho dbgmodel.h

Consulte também

interface IDebugHostMemory3