TTD llama a objetos
Descripción
Los objetos TTD Calls se usan para proporcionar información sobre las llamadas de función que se producen a lo largo de un seguimiento.
Parámetros
Propiedad | Descripción |
---|---|
¡Función! SymbolName | Una o varias comillas dobles, separadas por una coma. Por ejemplo, dx @$cursession. TTD. Calls("module!symbol1", "module!symbol2", ...) |
Propiedades
Property | Descripción |
---|---|
EventType | El tipo de evento. Se trata de "Call" para todos los objetos TTD Calls. |
ThreadId | El ID del subproceso del sistema operativo del subproceso que realizó la solicitud. |
UniqueThreadId | Un identificador único para el subproceso en el seguimiento. Los identificadores de subprocesos normales se pueden reutilizar durante la duración de un proceso, pero UniqueThreadIds no. |
Función | Nombre simbólico de la función. |
FunctionAddress | Dirección de la función en memoria. |
ReturnValue | Valor devuelto de la función. Si la función tiene un tipo void, esta propiedad no estará presente. |
Children
Object | Descripción |
---|---|
Parámetros[] | Matriz que contiene los parámetros pasados a la función. El número de elementos varía en función de la firma de tipo de la función. |
TimeStart | Objeto position que describe la posición al principio de la llamada. |
TimeEnd | Objeto position que describe la posición al final de la llamada. |
Comentarios
La depuración de viajes de tiempo usa información de símbolos proporcionada en los ARCHIVOS PDF para determinar el número de parámetros de una función y sus tipos, el tipo de valor devuelto y la convención de llamada. En caso de que la información de símbolos no esté disponible o los símbolos se hayan restringido a la información de símbolos públicas, todavía es posible realizar consultas. El motor de consultas de viaje de tiempo realizará algunas suposiciones en este escenario:
- Hay cuatro parámetros enteros sin signo de 64 bits para la función
- El valor devuelto es un entero de 64 bits sin signo.
- El nombre de la función se establece en una cadena fija: "UnknownOrMissingSymbols"
Estas suposiciones permiten realizar consultas en ausencia de información de símbolos adecuada. Sin embargo, para obtener los mejores resultados, use símbolos PDB completos siempre que sea posible.
Tenga en cuenta que la función Calls realiza el cálculo y, en función del tamaño del seguimiento, puede tardar un tiempo en ejecutarse. El uso de LA CPU aumentará durante el cálculo y observará el uso de CPU en el administrador de tareas, lo que indica que el cálculo está progresando. Los resultados de la consulta se almacenan en caché en memoria, por lo que las consultas posteriores en las llamadas consultadas anteriormente son significativamente más rápidas.
Uso de ejemplo
En este ejemplo se muestra el objeto calls para 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
Consulte también
Depuración de viajes en el tiempo - Introducción a los objetos de depuración de viajes en el tiempo
Depuración de viajes en el tiempo - Información general
dx (Mostrar la expresión del modelo de objeto del depurador)