DEBUG_STACK_FRAME_EX struttura (dbgeng.h)
La struttura DEBUG_STACK_FRAME_EX descrive un frame dello stack e l'indirizzo dell'istruzione corrente per il frame dello stack.
Sintassi
typedef struct _DEBUG_STACK_FRAME_EX {
ULONG64 InstructionOffset;
ULONG64 ReturnOffset;
ULONG64 FrameOffset;
ULONG64 StackOffset;
ULONG64 FuncTableEntry;
ULONG64 Params[4];
ULONG64 Reserved[6];
BOOL Virtual;
ULONG FrameNumber;
ULONG InlineFrameContext;
ULONG Reserved1;
} DEBUG_STACK_FRAME_EX, *PDEBUG_STACK_FRAME_EX;
Members
InstructionOffset
Posizione nello spazio indirizzi virtuale del processo dell'istruzione correlata per il frame dello stack. Questo è in genere l'indirizzo restituito per il frame dello stack successivo o il puntatore di istruzioni corrente se la cornice si trova nella parte superiore dello stack.
ReturnOffset
Posizione nello spazio indirizzi virtuale del processo dell'indirizzo restituito per il frame dello stack. Questa è in genere l'istruzione correlata per il frame dello stack precedente.
FrameOffset
Posizione nello spazio indirizzi virtuale del processo del frame dello stack, se noto. Alcune architetture del processore non hanno un frame o ne hanno più di una. In questi casi, il motore sceglie un valore più rappresentativo per il livello specificato dello stack.
StackOffset
Posizione nello spazio indirizzi virtuale del processo dello stack di processori.
FuncTableEntry
Posizione nello spazio indirizzi virtuale della destinazione della voce di funzione per questo frame, se disponibile. Se impostato, questo puntatore non è garantito per rimanere valido in modo indefinito e non deve essere mantenuto per l'uso futuro. Salvare invece il valore di InstructionOffset e usarlo con IDebugSymbols3::GetFunctionEntryByOffset per recuperare le informazioni sulla voce di funzione in un secondo momento.
Params[4]
I valori dei primi quattro slot stack passati alla funzione, se disponibile. Se sono presenti meno di quattro argomenti, le voci rimanenti vengono impostate su zero. Questi slot stack non sono garantiti per contenere i valori dei parametri. Alcune convenzioni di chiamata e ottimizzazioni del compilatore potrebbero interferire con l'identificazione delle informazioni sui parametri. Per informazioni sugli argomenti più dettagliate e sulla gestione corretta della posizione, usare IDebugSymbols::GetScopeSymbolGroup per recuperare i simboli dei parametri effettivi.
Reserved[6]
Riservato per utilizzi futuri. Impostata su NULL.
Virtual
Il valore è impostato su TRUE se questo frame dello stack è stato generato dal debugger rimuovendo. In caso contrario, il valore è FALSE se è stato formato dal contesto corrente di un thread. In genere, questo è TRUE per il frame nella parte superiore dello stack, dove InstructionOffset è il puntatore di istruzioni corrente.
FrameNumber
Indice del frame. Questo indice conta il numero di frame dall'inizio dello stack di chiamate. Il frame nella parte superiore dello stack, che rappresenta la chiamata corrente, ha zero indice.
InlineFrameContext
Contesto frame inline.
Reserved1
Usato per scopi di allineamento. Impostare su 0.
Requisiti
Requisito | Valore |
---|---|
Intestazione | dbgeng.h (include DbgEng.h) |