Share via


DkmStackWalkFrame Classe

Definizione

DkmStackWalkFrame rappresenta un frame in uno stack di chiamate che è stato camminato, ma potrebbe non essere stato formattato o filtrato. I fotogrammi formattati sono rappresentati invece da DkmStackFrame.

Classi derivate: DkmStackFrame

public ref class DkmStackWalkFrame
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmStackWalkFrame
[Windows::Foundation::Metadata::WebHostHidden]
class DkmStackWalkFrame
[System.Runtime.InteropServices.Guid("48b55030-ecac-2387-4e63-bfdc3c172598")]
public class DkmStackWalkFrame
[<System.Runtime.InteropServices.Guid("48b55030-ecac-2387-4e63-bfdc3c172598")>]
type DkmStackWalkFrame = class
Public Class DkmStackWalkFrame
Ereditarietà
DkmStackWalkFrame
Derivato
Attributi

Proprietà

AnnotatedModule

[Facoltativo] Se è presente un frame annotato, specifica un'istanza facoltativa del modulo da associare a questo frame. Se presente, l'utente sarà in grado di caricare file binari o simboli per questo modulo facendo clic con il pulsante destro del mouse su questa cornice nella finestra dello stack di chiamate. Si tratta di NULL per fotogrammi non annotati.

Questa API è stata introdotta in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

Annotations

[Facoltativo] Raccolta di annotazioni di frame di sola lettura. Questi sono definiti da un svolgitore e sono specifici di tale rimozione. Un esempio di utilizzo è il modo in cui i dati dei frame inline vengono passati dal filtro dello stack inline al formattatore.

AsyncContext

[Facoltativo] Contesto facoltativo per l'esecuzione di stack di restituzione asincroni e stack di creazione di attività.

Questa API è stata introdotta in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

BasicSymbolInfo

[Facoltativo] Contiene informazioni di base sul DkmInstructionSymbol corrispondente all'IstruzioneAddress della cornice. Per i frame nativi, questo verrà calcolato da StackProvider prima che il frame venga passato a un filtro stack.

Questo sarà sempre null per un DkmStackFrame.

Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

Connection

Rappresenta una connessione tra il monitoraggio e l'IDE. Può essere una connessione locale se il monitoraggio è in esecuzione nello stesso processo dell'IDE oppure può essere una connessione remota. Nel processo di monitoraggio è presente una sola connessione.

Data

[Facoltativo] Oggetto facoltativo da collegare a un DkmStackWalkFrame, consentendo ai componenti di associare dati privati aggiuntivi al frame.

Questa API è stata introdotta in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

Description

[Facoltativo] Descrizione del frame che verrà visualizzato nella finestra dello stack di chiamate. Questa operazione deve essere fornita per fotogrammi annotati.

Flags

Contrassegna le proprietà di un DkmStackWalkFrame.

FrameBase

Puntatore dello stack di base del frame. Questa operazione viene usata dal SDM per ordinare il frame e viene usata dalla fusione dello stack per valutare lo stato di avanzamento della procedura, quindi questo valore è necessario anche per i fotogrammi annotati. Questo valore deve essere valido solo nel caso in cui lo stack del debug sia danneggiato.

FrameSize

Numero di byte dello stack utilizzato da questo frame. Questo valore sarà zero per fotogrammi annotati o se il valore è sconosciuto.

InstructionAddress

[Facoltativo] Istruzione di questa cornice. Questo può essere omesso per fotogrammi annotati.

ModuleInstance

[Facoltativo] Modulo contenente questo indirizzo. Gli indirizzi senza un modulo non possono avere simboli (anche per gli indirizzi personalizzati). Gli indirizzi CLR avranno sempre un modulo. Gli indirizzi nativi non avranno un modulo se la CPU passa a un indirizzo non valido (ad esempio NULL) o se la CPU esegue codice generato in modo dinamico.

Priority

Priorità del frame a piedi dello stack. Questo viene in genere usato per fotogrammi annotati che hanno rilevato un problema.

Questa API è stata introdotta in Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5).

Process

DkmProcess rappresenta un processo di destinazione in fase di debug. Il debugger esegue il debug dei processi, quindi questa è l'unità di base del debug. Un DkmProcess può rappresentare un processo di sistema o un processo virtuale, ad esempio minidump.

Registers

[Facoltativo] Registri della cornice a piedi. Questi devono essere forniti per fotogrammi non annotati.

RuntimeInstance

[Facoltativo] La classe DkmRuntimeInstance rappresenta un ambiente di esecuzione caricato in un DkmProcess e che contiene il codice da eseguire per il debug.

Thread

Thread su cui si trova questo frame dello stack.

UniqueId

Identificatore univoco per DkmStackWalkFrame. Negli scenari di debug remoto, questo può essere GUID_NULL/Guid.Empty se il frame è stato marshallato da un debugger IDE/remoto precedente.

Questa API è stata introdotta in Visual Studio 16 Update 10 (DkmApiVersion.VS16Update10).

Metodi

CanSetNextStatement(DkmInstructionAddress)

CanSetNextStatement determina se è possibile spostare l'IP di un frame dello stack. La cornice dello stack è sempre la cornice dello stack foglia su un determinato thread. Questa API può essere implementata solo all'interno del processo del motore. Il parametro Result out deve essere S_OK o il valore di un HRESULT non riuscito che l'interfaccia utente può eseguire il mapping a un messaggio di errore.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

ComputeUserStatus(DkmInspectionSession, Boolean)

Determina se un frame è codice utente.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

Questa API è stata introdotta in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>)

Create una nuova istanza dell'oggetto DkmStackWalkFrame.

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData)

Create una nuova istanza dell'oggetto DkmStackWalkFrame.

Questa API è stata introdotta in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData, DkmBasicInstructionSymbolInfo)

Create una nuova istanza dell'oggetto DkmStackWalkFrame.

Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

Create(DkmThread, DkmInstructionAddress, UInt64, UInt32, DkmStackWalkFrameFlags, String, DkmFrameRegisters, ReadOnlyCollection<DkmStackWalkFrameAnnotation>, DkmModuleInstance, DkmAsyncStackWalkContext, DkmStackWalkFrameData, DkmBasicInstructionSymbolInfo, DkmStackWalkFramePriority)

Create una nuova istanza dell'oggetto DkmStackWalkFrame.

Questa API è stata introdotta in Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5).

Format(DkmInspectionSession, DkmFrameFormatOptions)

Formattare un DkmStackWalkFrame in un DkmStackFrame. La formattazione di un frame è un passaggio del provider di stack durante GetNextFrames. Questo metodo può essere usato per formattare un frame in modo diverso rispetto a quello originariamente eseguito dal provider di stack in GetNextFrames.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

GetClrGenericParameters()

Ottiene i parametri generici per il frame dello stack corrente come elenco di nomi qualificati dell'assembly.

Questa API è stata introdotta in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

GetClrGenericParameters(DkmWorkList, DkmCompletionRoutine<DkmGetClrGenericParametersAsyncResult>)

Ottiene i parametri generici per il frame dello stack corrente come elenco di nomi qualificati dell'assembly.

Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento.

Questa API è stata introdotta in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

GetInspectionInterface(DkmInspectionSession, Guid)

GetInspectionInterface viene usato per ottenere un ICorDebugFrame o altre interfacce specifiche dell'implementazione che un componente può usare per esaminare in modo approfondito il frame dello stack.

L'interfaccia restituita può essere usata SOLO per controllare il processo di destinazione e non deve mai essere usata per controllare l'esecuzione (nessun passaggio, nessun punto di interruzione, nessuna continuazione e così via). In questo modo non è supportato e comporterà un comportamento non definito. NOTA: l'uso di questo metodo dal codice gestito non è consigliato per motivi di prestazioni. Il marshalling di DkmStackWalkFrame tra codice nativo e gestito è costoso. Usare invece DkmRuntimeInstance.GetFrameInspectionInterface.

Vincolo percorso: questa API deve essere chiamata dallo stesso processo in cui il runtime di destinazione implementa la procedura dettagliata dello stack o dove vengono caricati i simboli. Per il debug gestito, ciò significa che quando si esegue il debug di processi remoti o a 64 bit, questa API deve essere chiamata da un componente di monitoraggio di debug.

GetInstructionSymbol()

Restituire un DkmInstructionSymbol per un frame dello stack. Se il frame dello stack non ha alcun indirizzo di istruzione (frame annotato) o l'indirizzo di istruzione non ha associato DkmModule, GetInstructionSymbol restituirà null (S_FALSE nel codice nativo).

GetProperty(ICorDebugValue, String)

Valuta una proprietà nell'oggetto ICorDebugValue specificato. Il tipo del valore deve essere caricato dal DkmClrAppDomain del DkmStackWalkFrame in cui viene chiamato questo $Name$.

Vincolo location: deve trovarsi sul lato remoto perché si passa un valore ICorDebugHandleValue.

Questa API è stata introdotta in Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3).

GetUnwindAddress(DkmInstructionAddress)

Restituisce l'indirizzo che rappresenta la posizione se un'eccezione deve essere intercettata in questo frame.

InterceptCurrentException(DkmExceptionInterceptActionFlags, UInt64)

IntercettaCurrentException viene usato per rimuovere questo frame come se fosse presente un gestore di eccezioni in quel frame.

OnSetNextStatementCompleted(DkmInstructionAddress)

OnSetNextStatementCompleted è un metodo per utilizzo generico per consentire ai componenti di cancellare lo stato dopo il completamento di un'istruzione successiva impostata. DkmStackWalkFrame sarà il frame precedente alla chiamata SetNextStatement.

Vincolo percorso: questa API deve essere in genere chiamata solo dai componenti lato client. Tuttavia, è sicuro che un componente lato monitoraggio chiami questa API se l'istruzione successiva impostata viene chiamata da un gestore eventi.

SetNextStatement(DkmInstructionAddress)

SetNextStatement sposta l'IP di un frame dello stack. La cornice dello stack è sempre la cornice dello stack foglia su un determinato thread.

Si applica a