Partilhar via


Objetos de chamadas TTD

Description

TTD Calls objects are used to give information about function calls that occur over the course of a trace.

Parameters

Property Description
Function!SymbolName Uma ou mais contidas entre aspas duplas, separadas por uma vírgula. Por exemplo, dx @$cursession. TTD. Chamadas("module!symbol1", "module!symbol2", ...)

Properties

Property Description
EventType O tipo de evento. Esta é "Call" para todos os objetos TTD Calls.
ThreadId O ID de thread do sistema operacional do thread que fez a solicitação.
UniqueThreadId Um ID exclusivo para o thread através do rastreamento. IDs de thread regulares podem ser reutilizados ao longo da vida útil de um processo, mas UniqueThreadIds não.
Function O nome simbólico da função.
FunctionAddress O endereço da função na memória.
ReturnValue O valor de retorno da função. Se a função tiver um tipo void, essa propriedade não estará presente.

Children

Object Description
Parameters[] Uma matriz contendo os parâmetros passados para a função. O número de elementos varia com base na assinatura de tipo da função.
TimeStart A position object that describes the position at the start of the call.
TimeEnd A position object that describes the position at the end of the call.

Remarks

A depuração de viagem no tempo usa informações de símbolo fornecidas nos PDBs para determinar o número de parâmetros para uma função e seus tipos, o tipo de valor de retorno e a convenção de chamada. No caso de a informação do símbolo não estar disponível ou de os símbolos terem sido restringidos à informação do símbolo público, ainda é possível fazer consultas. O mecanismo de consulta de viagem no tempo fará algumas suposições neste cenário:

  • Há quatro parâmetros inteiros não assinados de 64 bits para a função
  • O valor de retorno é um inteiro não assinado de 64 bits
  • O nome da função é definido como uma cadeia de caracteres fixa: "UnknownOrMissingSymbols"

Estes pressupostos permitem que sejam feitas consultas na ausência de informações adequadas sobre os símbolos. No entanto, para obter melhores resultados, utilize, sempre que possível, símbolos completos do APO.

Observe que a função Calls faz computação e, dependendo do tamanho do rastreamento, pode demorar um pouco para ser executada. O uso da CPU aumentará durante a computação e observar o uso da CPU no gerenciador de tarefas, dá uma indicação de que a computação está progredindo. Os resultados da consulta são armazenados em cache na memória para que as consultas subsequentes em chamadas consultadas anteriormente sejam significativamente mais rápidas.

Example Usage

Este exemplo mostra o 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        

See Also

Depuração Temporal - Introdução aos Objetos de Depuração Temporal

Depuração de Time Travel - Visão Geral

dx (Expressão do Modelo de Objeto do Display Debugger)