Metodo IDebugControl4::GetContextStackTrace (dbgeng.h)
Il metodo GetContextStackTrace restituisce i frame all'inizio dello stack di chiamate, a partire da un contesto di 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 del registro 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 a FrameSize volte FrameContextsEntrySize.
[in] FrameContextsEntrySize
Specifica le dimensioni, in byte, di ogni contesto di frame in FrameContexts.
[out, optional] FramesFilled
Riceve il numero di fotogrammi inseriti nella matrice Frame e i contesti in FrameContexts. Se FramesFilled è NULL, queste informazioni non vengono restituite.
Valore restituito
Codice restituito | Descrizione |
---|---|
|
Il metodo è stato eseguito correttamente. |
Questo metodo può anche restituire valori di errore. Per altre informazioni, vedere Valori restituiti.
Commenti
L'analisi dello stack restituita a Frame e FrameContexts può essere stampata 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 che non vengono ripristinati durante la rimozione vengono lasciati come ultimo valore ripristinato, pertanto è necessario prestare attenzione quando si utilizza lo stato del registro che potrebbe non essere ripristinato da una rimozione.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | dbgeng.h (include Dbgeng.h, Ntddk.h) |