Поделиться через


Метод IDebugControl4::OutputContextStackTrace (dbgeng.h)

Метод OutputContextStackTrace выводит стек вызовов, заданный массивом кадров стека и соответствующими контекстами регистра.

Синтаксис

HRESULT OutputContextStackTrace(
  [in] ULONG              OutputControl,
  [in] PDEBUG_STACK_FRAME Frames,
  [in] ULONG              FramesSize,
  [in] PVOID              FrameContexts,
  [in] ULONG              FrameContextsSize,
  [in] ULONG              FrameContextsEntrySize,
  [in] ULONG              Flags
);

Параметры

[in] OutputControl

Указывает, куда отправлять выходные данные. Возможные значения см. в разделе DEBUG_OUTCTL_XXX.

[in] Frames

Указывает массив кадров стека для вывода. Количество элементов в этом массиве — FramesSize. Если параметр Frame имеет значение NULL, используется текущий кадр стека.

[in] FramesSize

Указывает количество кадров для вывода.

[in] FrameContexts

Указывает контекст регистра для каждого кадра в стеке. Записи в этом массиве соответствуют записям в массиве Кадров . Тип контекста потока — это структура CONTEXT для эффективного процессора целевого объекта.

[in] FrameContextsSize

Указывает размер (в байтах) памяти, на которую указывает FrameContexts. Число кадров стека должно быть равно количеству контекстов, а FrameContextsSizeFrameSize , умноженное на FrameContextsEntrySize.

[in] FrameContextsEntrySize

Указывает размер (в байтах) каждого контекста кадра в FrameContexts.

[in] Flags

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

Flag Описание
DEBUG_STACK_ARGUMENTS Отображает первые три фрагмента памяти стека в кадре каждого вызова. На платформах, где аргументы передаются в стек, а код кадра использует аргументы стека, эти значения будут аргументами функции .
DEBUG_STACK_FUNCTION_INFO Отображает сведения о функции, соответствующей кадру. Сюда входят сведения о соглашении о вызовах и пропуске указателя кадра (FPO).
DEBUG_STACK_SOURCE_LINE Отображает сведения об исходной строке для каждого кадра трассировки стека.
DEBUG_STACK_FRAME_ADDRESSES Отображает обратный адрес, адрес предыдущего кадра и другие соответствующие адреса для каждого кадра.
DEBUG_STACK_COLUMN_NAMES Отображает имена столбцов.
DEBUG_STACK_NONVOLATILE_REGISTERS Отображает контекст энергонезависимого регистра для каждого кадра. Это имеет смысл только для некоторых платформ.
DEBUG_STACK_FRAME_NUMBERS Отображает номера кадров.
DEBUG_STACK_PARAMETERS Отображает имена и значения параметров, указанные в символьных данных.
DEBUG_STACK_FRAME_ADDRESSES_RA_ONLY Отображает только обратный адрес в адресах кадров стека.
DEBUG_STACK_FRAME_MEMORY_USAGE Отображает количество байтов, разделяющих кадры.
DEBUG_STACK_PARAMETERS_NEWLINE Отображает каждый параметр, его тип и значение в новой строке.

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

Этот метод также может возвращать значения ошибок. Дополнительные сведения см. в разделе Возвращаемые значения .

Код возврата Описание
S_OK
Метод выполнен успешно.

Комментарии

Массив кадров стека можно получить с помощью GetContextStackTrace.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть dbgeng.h (включая Dbgeng.h, Ntddk.h)

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

GetContextStackTrace

IDebugControl4

OutputStackTrace

k, kb, kc, kd, kp, kP, kv (отображение стека backtrace)