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