Метод 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. Число кадров стека должно быть равно количеству контекстов, а FrameContextsSize — FrameSize , умноженное на 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 | Отображает каждый параметр, его тип и значение в новой строке. |
Возвращаемое значение
Этот метод также может возвращать значения ошибок. Дополнительные сведения см. в разделе Возвращаемые значения .
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
Комментарии
Массив кадров стека можно получить с помощью GetContextStackTrace.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | dbgeng.h (включая Dbgeng.h, Ntddk.h) |