struttura DEBUG_STACK_FRAME (dbgeng.h)
La struttura DEBUG_STACK_FRAME descrive uno stack frame e l'indirizzo dell'istruzione corrente per lo stack frame.
Sintassi
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;
Members
InstructionOffset
Posizione nello spazio indirizzi virtuale del processo dell'istruzione correlata per lo stack frame. Si tratta in genere dell'indirizzo restituito per il successivo stack frame o del puntatore all'istruzione corrente se il frame si trova nella parte superiore dello stack.
ReturnOffset
Posizione nello spazio indirizzi virtuale del processo dell'indirizzo restituito per lo stack frame. Si tratta in genere dell'istruzione correlata per lo stack frame precedente.
FrameOffset
Posizione nello spazio indirizzi virtuale del processo dello stack frame, se noto. Alcune architetture del processore non hanno un frame o 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 del processore.
FuncTableEntry
Posizione nello spazio indirizzi virtuale della destinazione della voce della funzione per questo frame, se disponibile. Se impostato, questo puntatore non è garantito che rimanga valido per un periodo illimitato e non deve essere mantenuto per un uso futuro. Salvare invece il valore di InstructionOffset e usarlo con IDebugSymbols3::GetFunctionEntryByOffset per recuperare le informazioni sulla voce della funzione in un secondo momento.
Params[4]
Valori dei primi quattro slot dello stack passati alla funzione, se disponibili. Se sono presenti meno di quattro argomenti, le voci rimanenti vengono impostate su zero. Questi slot dello stack non sono necessariamente contenenti valori di parametro. Alcune convenzioni di chiamata e ottimizzazioni del compilatore potrebbero interferire con l'identificazione delle informazioni sui parametri. Per informazioni più dettagliate sull'argomento e la gestione corretta della posizione, usare IDebugSymbols::GetScopeSymbolGroup per recuperare i simboli dei parametri effettivi.
Reserved[6]
Riservato per utilizzi futuri.
Virtual
Il valore è impostato su TRUE se questo stack frame è stato generato dal debugger rimuovendo. In caso contrario, il valore è FALSE se è stato formato dal contesto corrente di un thread. In genere, si tratta di TRUE per il frame nella parte superiore dello stack, dove InstructionOffset è il puntatore all'istruzione 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 indice zero.
Requisiti
Requisito | Valore |
---|---|
Intestazione | dbgeng.h (include DbgEng.h) |