Condividi tramite


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

Oggetto Descrizione
Parametri[] Matrice contenente i parametri passati alla funzione. Il numero di elementi varia in base alla firma del tipo della funzione.
TimeStart Oggetto position che descrive la posizione all'inizio della chiamata.
TimeEnd Oggetto position che descrive la posizione alla fine della chiamata.

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

Debug di viaggi temporali - Panoramica

dx (Display Debugger Object Model Expression)