TTD Chiama oggetti
Descrizione
Gli oggetti TTD Calls vengono usati per fornire informazioni sulle chiamate di funzione che si verificano nel corso di una traccia.
Parametri
Proprietà | Descrizione |
---|---|
Funzione! SymbolName | Uno o più contenuti tra virgolette doppie, separati da una virgola. Ad esempio dx @$cursession. TTD. Chiamate("module!symbol1", "module!symbol2", ...) |
Proprietà
Proprietà | Descrizione |
---|---|
EventType | Il tipo di evento. Si tratta di "Call" per tutti gli oggetti TTD Calls. |
ThreadId | ID thread del sistema operativo del thread che ha effettuato la richiesta. |
UniqueThreadId | ID univoco per il thread nella traccia. Gli ID thread regolari possono essere riutilizzati per tutta la durata di un processo, ma Non è possibile usare UniqueThreadIds. |
Funzione | Nome simbolico della funzione. |
FunctionAddress | Indirizzo della funzione in memoria. |
ReturnValue | Valore restituito della funzione. Se la funzione ha un tipo void, questa proprietà non sarà presente. |
Children
Osservazioni:
Il debug del tempo di spostamento usa le informazioni sui simboli fornite nei PDB per determinare il numero di parametri per una funzione e i relativi tipi, il tipo di valore restituito e la convenzione di chiamata. Nel caso in cui le informazioni sui simboli non siano disponibili o che i simboli siano stati limitati alle informazioni sui simboli pubblici, è comunque possibile eseguire query. Il motore di query di spostamento del tempo farà alcuni presupposti in questo scenario:
- Alla funzione sono presenti quattro parametri integer senza segno a 64 bit
- Il valore restituito è un intero senza segno a 64 bit
- Il nome della funzione è impostato su una stringa fissa: "UnknownOrMissingSymbols"
Questi presupposti consentono di effettuare query in assenza di informazioni di simboli adeguate. Tuttavia, per ottenere risultati ottimali, usare simboli PDB completi, quando possibile.
Si noti che la funzione Chiamate esegue il calcolo e, a seconda delle dimensioni della traccia, l'esecuzione può richiedere alcuni minuti. L'utilizzo della CPU aumenta durante il calcolo e controlla l'utilizzo della CPU in Gestione attività, indica che il calcolo è in corso. I risultati della query vengono memorizzati nella cache in memoria, in modo che le query successive sulle chiamate sottoposte a query in precedenza siano notevolmente più veloci.
Utilizzo di esempio
Questo esempio mostra l'oggetto chiamate per ucrtbase!initterm.
0:000> dx -r2 @$cursession.TTD.Calls("ucrtbase!initterm")
@$cursession.TTD.Calls("ucrtbase!initterm")
[0x0]
EventType : Call
ThreadId : 0x2074
UniqueThreadId : 0x2
TimeStart : 1E:5D0
TimeEnd : 2D:E
Function : ucrtbase!_initterm
FunctionAddress : 0x7ffb345825d0
ReturnAddress : 0x7ff6a521677e
Parameters
SystemTimeStart : Friday, January 12, 2024 21:18:40.799
SystemTimeEnd : Friday, January 12, 2024 21:18:44.26
Vedi anche
Debug di viaggi temporali - Introduzione agli oggetti di debug di viaggi temporali