Метод 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. Если кадрыNULL, используется текущий кадр стека.

[in] FramesSize

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

[in] FrameContexts

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

[in] FrameContextsSize

Задает размер памяти в байтах, на которую указывает FrameContexts. Количество кадров стека должно быть равно количеству контекстов, а FrameContextsSize должно быть равно FrameSize умножено на FrameContextsEntrySize.

[in] FrameContextsEntrySize

Задает размер в байтах каждого контекста кадра в FrameContexts.

[in] Flags

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

Флаг Описание
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 (include Dbgeng.h, Ntddk.h)

См. также

GetContextStackTrace

IDebugControl4

OutputStackTrace

k, kb, kc, kd, kp, kP, kv (Display Stack Backtrace)