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

Propriété Description
Type d’événement Type de l'événement. Il s’agit de « Call » pour tous les objets TTD Calls.
ThreadId ID de thread de système d’exploitation du thread qui a effectué la demande.
UniqueThreadId ID unique pour le thread dans la trace. Les ID de thread standard peuvent être réutilisés pendant toute la durée de vie d’un processus, contrairement à UniqueThreadIds.
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.

Remarques

Le débogage de voyage dans le temps utilise les informations de symbole fournies dans les PDB pour déterminer le nombre de paramètres d’une fonction et leurs types, le type de valeur de retour et la convention d’appel. Dans le cas où les informations sur les symboles ne sont pas disponibles ou si 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 formulera certaines hypothèses dans ce scénario :

  • Il existe quatre paramètres entiers non signés 64 bits pour 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 d’effectuer des requêtes en l’absence d’informations adéquates sur les symboles. Toutefois, pour obtenir de meilleurs résultats, utilisez des symboles PDB complets lorsque cela est possible.

Notez que la fonction Calls effectue des calculs et qu’en fonction de la taille de la trace, l’exécution peut prendre un certain temps. L’utilisation du processeur va augmenter pendant le calcul et l’observation de l’utilisation du processeur dans le gestionnaire de tâches, donne une indication que le calcul progresse. Les résultats de la requête étant mis en cache en mémoire, les requêtes suivantes sur les appels précédemment interrogés sont considérablement plus rapides.

Exemple d’utilisation

Cet exemple montre l’objet calls 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

Voir aussi

Débogage de voyage dans le temps - Présentation des objets de débogage de voyage dans le temps

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