Partager via


TTD appelle des objets

Description

Les objets TTD Calls sont utilisés pour fournir des informations sur les appels de fonction qui se produisent au cours d’une trace.

Paramètres

Propriété Description
Fonction! SymbolName Un ou plusieurs contenus entre guillemets doubles, séparés par une virgule. Par exemple, dx @$cursession. TTD. Calls(« module !symbol1 », « module !symbol2 », ...)

Propriétés

Property Description
EventType le type d’événement ; Il s’agit de « Call » pour tous les objets TTD Calls.
ThreadId L’ID de thread du système d’exploitation du thread qui a fait la demande.
UniqueThreadId Un ID unique pour le thread à travers la trace. Les IDs de thread réguliers peuvent être réutilisés au cours de la durée de vie d’un processus mais les UniqueThreadIds ne peuvent pas l’être.
Fonction Nom symbolique de la fonction.
FunctionAddress Adresse de la fonction en mémoire.
ReturnValue Valeur de retour de la fonction. Si la fonction a un type void, cette propriété n’est pas présente.

Children

Object Description
Paramètres[] Tableau contenant les paramètres passés à la fonction. Le nombre d’éléments varie en fonction de la signature de type de la fonction.
TimeStart Objet position qui décrit la position au début de l’appel.
TimeEnd Objet position qui décrit la position à la fin de l’appel.

Notes

Le débogage de voyage dans le temps utilise les informations de symbole fournies dans les bases de données pour déterminer le nombre de paramètres d’une fonction et de leurs types, le type de valeur de retour et la convention d’appel. Si les informations de symbole ne sont pas disponibles ou que les symboles ont été limités aux informations de symboles publics, il est toujours possible d’effectuer des requêtes. Le moteur de requête de voyage dans le temps effectue certaines hypothèses dans ce scénario :

  • Il existe quatre paramètres entiers non signés 64 bits à la fonction
  • La valeur de retour est un entier non signé 64 bits
  • Le nom de la fonction est défini sur une chaîne fixe : « UnknownOrMissingSymbols »

Ces hypothèses permettent aux requêtes d’être effectuées en l’absence d’informations adéquates sur les symboles. Toutefois, pour de meilleurs résultats, utilisez des symboles PDB complets lorsque cela est possible.

Notez que la fonction Appels effectue un calcul et, selon la taille de la trace, il peut prendre un certain temps pour s’exécuter. L’utilisation du processeur augmente pendant le calcul et surveille l’utilisation du processeur dans le gestionnaire de tâches, indique que le calcul progresse. Les résultats de la requête sont mis en cache en mémoire afin que les requêtes suivantes sur les appels interrogés précédemment soient beaucoup plus rapides.

Exemple d’utilisation

Cet exemple montre l’objet d’appels pour 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        

Voir aussi

Débogage de voyage dans le temps - Introduction aux objets de débogage de voyage dans le temps

Débogage de voyage dans le temps - Vue d’ensemble

dx (Afficher l’expression du modèle d’objet de débogage)