Метод ICorDebugCode3::GetReturnValueLiveOffset

Для указанного смещения IL получает собственные смещения, в которых должна быть размещена точка останова, чтобы отладчик смог получить возвращаемое значение из функции.

Синтаксис

HRESULT GetReturnValueLiveOffset(  
    [in] ULONG32 ILoffset,  
    [in] ULONG32 bufferSize,
    [out] ULONG32 *pFetched,
    [out, size_is(buffersize), length_is(*pFetched)] ULong32 pOffsets[]  
);  

Параметры

ILoffset
Смещение IL. Это должен быть сайт вызова функции, иначе вызов функции завершится ошибкой.

bufferSize
Количество байтов, доступных для хранения pOffsets.

pFetched
Указатель на количество фактически возвращенных смещения. Как правило, его значение равно 1, но одна инструкция IL может сопоставляться с несколькими CALL инструкциями сборки.

pOffsets
Массив собственных смещения. Как правило, pOffsets содержит одно смещение, хотя одна инструкция IL может сопоставляться с несколькими инструкциями сборки CALL .

Комментарии

Этот метод используется вместе с методом ICorDebugILFrame3::GetReturnValueForILOffset для получения возвращаемого значения метода, возвращающего ссылочный тип. Передача смещения IL сайту вызова функции в этот метод возвращает одно или несколько собственных смещений. Затем отладчик может задать точки останова для этих собственных смещений в функции. Когда отладчик достигает одной из точек останова, можно передать то же смещение IL, которое вы передали этому методу, в метод ICorDebugILFrame3::GetReturnValueForILOffset , чтобы получить возвращаемое значение. Затем отладчик должен очистить все заданные точки останова.

Предупреждение

Методы ICorDebugCode3::GetReturnValueLiveOffsetICorDebugILFrame3::GetReturnValueForILOffset позволяют получать возвращаемые сведения только для ссылочных типов. Получение возвращаемых сведений о значении из типов значений (т. е. всех типов, производных от ValueType) не поддерживается.

Функция возвращает значения, HRESULT показанные в следующей таблице.

Значение HRESULT Описание
S_OK Успешно.
CORDBG_E_INVALID_OPCODE Данный сайт смещения IL не является инструкцией вызова, или функция возвращает void.
CORDBG_E_UNSUPPORTED Заданное смещение IL является правильным вызовом, но возвращаемый тип не поддерживается для получения возвращаемого значения.

Метод ICorDebugCode3::GetReturnValueLiveOffset доступен только в системах x86 и AMD64.

Требования

Платформы: см. раздел Требования к системе.

Заголовок: CorDebug.idl, CorDebug.h

Библиотека: CorGuids.lib

платформа .NET Framework версии: доступно с версии 4.5.1.

См. также раздел