Metodo IDebugControl4::GetContextStackTrace (dbgeng.h)

Il metodo GetContextStackTrace restituisce i frame nella parte superiore dello stack di chiamate, a partire da un contesto di registro arbitrario e restituisce il contesto di registro ricostruito per ogni frame dello stack.

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 di registrazione per la parte superiore dello stack.

[in] StartContextSize

Specifica le dimensioni, in byte, del contesto di registrazione StartContext .

[out, optional] Frames

Riceve i frame dello stack. Il numero di elementi che contiene questa matrice è FrameSize. Se Frame è NULL, queste informazioni non vengono restituite.

[in] FramesSize

Specifica il numero di elementi nei frame della matrice.

[out, optional] FrameContexts

Riceve il contesto del registro ricostruito per ogni frame nello stack. Le voci di questa matrice corrispondono alle voci della matrice Frame . Il tipo del contesto del thread è la struttura CONTEXT per il processore efficace della destinazione. Se FrameContexts è NULL, queste informazioni non vengono restituite.

[in] FrameContextsSize

Specifica le dimensioni, in byte, della memoria puntata da FrameContexts. Il numero di fotogrammi dello stack restituiti è uguale al numero di contesti restituiti e FrameContextsSize deve essere uguale a FrameContextsEntrySize.

[in] FrameContextsEntrySize

Specifica le dimensioni, in byte, di ogni contesto frame in FrameContexts.

[out, optional] FramesFilled

Riceve il numero di fotogrammi inseriti nei frame e nei contesti della matrice in FrameContexts. Se FrameFilled è NULL, queste informazioni non vengono restituite.

Valore restituito

Codice restituito Descrizione
S_OK
Il metodo è stato eseguito correttamente.
 

Questo metodo può anche restituire valori di errore. Per altre informazioni, vedere Valori restituiti.

Commenti

La traccia dello stack restituita a Frame e FrameContexts può essere stampata usando OutputContextStackTrace.

È comune che lo stack si rimuove per ripristinare solo un subset dei registri. Ad esempio, lo stack si rimuove non ripristina sempre lo stato del registro volatile perché i registri volatili sono registri di graffi e il codice non deve conservarli. I registri che non vengono ripristinati per la rimozione vengono lasciati come ultimo valore ripristinato, pertanto è consigliabile prestare attenzione quando si usa lo stato del registro che potrebbe non essere ripristinato da una rimozione.

Requisiti

   
Piattaforma di destinazione Desktop
Intestazione dbgeng.h (include Dbgeng.h, Ntddk.h)

Vedi anche

GetStackTrace

IDebugControl4

OutputContextStackTrace

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