estructura DEBUG_STACK_FRAME (dbgeng.h)
La estructura DEBUG_STACK_FRAME describe un marco de pila y la dirección de la instrucción actual para el marco de pila.
Sintaxis
typedef struct _DEBUG_STACK_FRAME {
ULONG64 InstructionOffset;
ULONG64 ReturnOffset;
ULONG64 FrameOffset;
ULONG64 StackOffset;
ULONG64 FuncTableEntry;
ULONG64 Params[4];
ULONG64 Reserved[6];
BOOL Virtual;
ULONG FrameNumber;
} DEBUG_STACK_FRAME, *PDEBUG_STACK_FRAME;
Miembros
InstructionOffset
Ubicación en el espacio de direcciones virtuales del proceso de la instrucción relacionada para el marco de pila. Suele ser la dirección de retorno del siguiente marco de pila o el puntero de instrucción actual si el marco está en la parte superior de la pila.
ReturnOffset
La ubicación del espacio de direcciones virtuales del proceso de la dirección de retorno para el marco de pila. Normalmente, esta es la instrucción relacionada para el marco de pila anterior.
FrameOffset
Ubicación en el espacio de direcciones virtuales del proceso del marco de pila, si se conoce. Algunas arquitecturas de procesador no tienen un marco o tienen más de uno. En estos casos, el motor elige un valor más representativo para el nivel especificado de la pila.
StackOffset
Ubicación en el espacio de direcciones virtuales del proceso de la pila del procesador.
FuncTableEntry
Ubicación en el espacio de direcciones virtuales del destino de la entrada de función para este marco, si está disponible. Cuando se establece, no se garantiza que este puntero permanezca válido indefinidamente y no se debe mantener para su uso futuro. En su lugar, guarde el valor de InstructionOffset y úselo con IDebugSymbols3::GetFunctionEntryByOffset para recuperar la información de entrada de función más adelante.
Params[4]
Los valores de las cuatro primeras ranuras de pila que se pasan a la función, si están disponibles. Si hay menos de cuatro argumentos, las entradas restantes se establecen en cero. No se garantiza que estas ranuras de pila contengan valores de parámetro. Algunas convenciones de llamada y optimizaciones del compilador pueden interferir con la identificación de la información de parámetros. Para obtener información de argumentos más detallada y el control de ubicación adecuado, use IDebugSymbols::GetScopeSymbolGroup para recuperar los símbolos de parámetro reales.
Reserved[6]
Reservado para uso futuro.
Virtual
El valor se establece en TRUE si el depurador generó este marco de pila desenredado. De lo contrario, el valor es FALSE si se formó a partir del contexto actual de un subproceso. Normalmente, esto es TRUE para el marco en la parte superior de la pila, donde InstructionOffset es el puntero de instrucción actual.
FrameNumber
Índice del marco. Este índice cuenta el número de fotogramas de la parte superior de la pila de llamadas. El marco de la parte superior de la pila, que representa la llamada actual, tiene el índice cero.
Requisitos
Requisito | Valor |
---|---|
Header | dbgeng.h (incluir DbgEng.h) |