Compartir a través de


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)