Condividi tramite


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
S_OK
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)

Vedere anche

GetStackTrace

IDebugControl4

OutputContextStackTrace

k, kb, kc, kd, kp, kP, kv (Display Stack Backtrace)