Metodo IDebugControl4::GetContextStackTrace (dbgeng.h)
Il metodo GetContextStackTrace restituisce i fotogrammi all'inizio dello stack di chiamate, a partire da un contesto registro arbitrario e restituendo il contesto del registro ricostruito per ogni stack frame.
Sintassi
HRESULT GetContextStackTrace(
[in, optional] PVOID StartContext,
[in] ULONG StartContextSize,
[out, optional] PDEBUG_STACK_FRAME Frames,
[in] ULONG FramesSize,
[out, optional] PVOID FrameContexts,
[in] ULONG FrameContextsSize,
[in] ULONG FrameContextsEntrySize,
[out, optional] PULONG FramesFilled
);
Parametri
[in, optional] StartContext
Specifica il contesto del registro per la parte superiore dello stack.
[in] StartContextSize
Specifica le dimensioni, in byte, del contesto di registrazione StartContext.
[out, optional] Frames
Riceve gli stack frame. Il numero di elementi contenuti in questa matrice è FrameSize. Se Frame è NULL, queste informazioni non vengono restituite.
[in] FramesSize
Specifica il numero di elementi nella matrice Frame.
[out, optional] FrameContexts
Riceve il contesto del registro ricostruito per ogni frame nello stack. Le voci in questa matrice corrispondono alle voci della matrice frame. Il tipo di contesto del thread è la struttura CONTEXT per il processore effettivo della destinazione. Se FrameContexts è NULL, queste informazioni non vengono restituite.
[in] FrameContextsSize
Specifica le dimensioni, in byte, della memoria a cui punta FrameContexts. Il numero di stack frame restituiti è uguale al numero di contesti restituiti e FrameContextsSize deve essere uguale FrameSize volte FrameContextsEntrySize.
[in] FrameContextsEntrySize
Specifica le dimensioni, in byte, di ogni contesto di fotogramma in FrameContexts.
[out, optional] FramesFilled
Riceve il numero di fotogrammi posizionati nella matrice Frame e contesti in FrameContexts. Se FrameFilled è null, queste informazioni non vengono restituite.
Valore restituito
Codice restituito | Descrizione |
---|---|
|
Il metodo ha avuto esito positivo. |
Questo metodo può anche restituire valori di errore. Per altre informazioni, vedere valori restituiti.
Osservazioni
È possibile stampare l'analisi dello stack restituita a Frame e FrameContexts usando OutputContextStackTrace.
È comune che le operazioni di rimozione dello stack ripristinino solo un subset dei registri. Ad esempio, la rimozione dello stack non ripristina sempre lo stato del registro volatile perché i registri volatili sono registri scratch e il codice non deve conservarli. I registri non ripristinati durante la rimozione vengono lasciati come ultimo valore ripristinato, quindi prestare attenzione quando si utilizza lo stato del registro che potrebbe non essere ripristinato da una rimozione.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Desktop |
intestazione | dbgeng.h (include Dbgeng.h, Ntddk.h) |