Condividi tramite


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)