Метод IDebugHostMemory4::CanonicalizeLocation (dbgmodel.h)

CanonicalizeLocation — это метод, который преобразует заданное расположение в его "каноническое представление", который является выбранной стандартной формой. Он может обрабатывать различные типы расположений, например виртуальную память и регистр, которые можно представить несколькими способами.

Классический пример, в котором эта функция может оказаться полезной, включают средства отладки для Windows (dbgeng), которые исторически подписывают 32-разрядные адреса до 64-разрядных, создавая трудности в представлении и различии определенных областей адресов в высокоуровневых 32-разрядных процессах.

Обратите внимание, что сравнение расположений или адресов, полученных из компонентов, в которых отчет подписывает расширенные адреса с нулевым расширенным, может привести к непредвиденным сбоям. Вы можете избежать таких неудач, вызвав канонизуяLocation() заранее. Помните, что этот метод не преобразует тип расположения. Чтобы преобразовать тип, необходимо вызвать LinearizeLocation().

Синтаксис

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

Параметры

context

Текущий контекст.

location

Расположение, которое требуется канонизировать.

pCanonicalizedLocation

Указатель на место хранения канонизованного расположения.

Возвращаемое значение

Этот метод возвращает HRESULT, указывающий на успешность или сбой.

Замечания

Хотя этот метод изменяет представление расположения на каноническую форму, он не изменяет фактический тип расположения. Используйте метод LinearizeLocation() для выполнения такого преобразования типов.

Требования

Требование Ценность
заголовка dbgmodel.h

См. также

интерфейс IDebugHostMemory4