Delen via


TTD roept objecten aan

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 Een of meer tussen dubbele aanhalingstekens, gescheiden door een komma. Bijvoorbeeld dx @$cursession. TTD. Aanroepen("module!symbol1", "module!symbol2", ...)

Properties

Property Description
EventType Het type gebeurtenis. Dit is 'Aanroepen' voor alle TTD-aanroepen-objecten.
ThreadId De thread-id van het besturingssysteem van de thread die de aanvraag heeft ingediend.
UniqueThreadId Een unieke id voor de thread in de trace. Reguliere thread-id's kunnen gedurende de levensduur van een proces opnieuw worden gebruikt, maar UniqueThreadIds niet.
Function De symbolische naam van de functie.
FunctionAddress Het adres van de functie in het geheugen.
ReturnValue De retourwaarde van de functie. Als de functie een ongeldig type heeft, is deze eigenschap niet aanwezig.

Children

Object Description
Parameters[] Een matrix met de parameters die aan de functie zijn doorgegeven. Het aantal elementen varieert op basis van de typehandtekening van de functie.
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

Foutopsporing in tijdreizen maakt gebruik van symboolinformatie in de PDBs om het aantal parameters voor een functie en hun typen, het type retourwaarde en de aanroepconventie te bepalen. In het geval dat symboolgegevens niet beschikbaar zijn of de symbolen zijn beperkt tot openbare symboolgegevens, is het nog steeds mogelijk om query's uit te voeren. De query-engine voor tijdreizen zal enkele veronderstellingen maken in dit scenario:

  • Er zijn vier 64-bits niet-ondertekende geheel getalparameters voor de functie
  • De retourwaarde is een 64-bits geheel getal zonder teken
  • De functienaam is ingesteld op een vaste tekenreeks: 'UnknownOrMissingSymbols'

Met deze veronderstellingen kunnen query's worden uitgevoerd als er geen adequate symboolinformatie is. Voor de beste resultaten worden echter indien mogelijk volledige PDB-symbolen gebruikt.

Houd er rekening mee dat de functie Aanroepen berekeningen uitvoert en afhankelijk van de grootte van de tracering, kan het even duren voordat deze wordt uitgevoerd. HET CPU-gebruik zal pieken tijdens de berekening en het CPU-gebruik in taakbeheer bekijken, geeft een indicatie dat de berekening vordert. De queryresultaten worden in het geheugen opgeslagen, zodat volgende query's voor eerder opgevraagde aanroepen aanzienlijk sneller zijn.

Example Usage

In dit voorbeeld ziet u het aanroepobject voor 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

Foutopsporing van tijdreizen - Inleiding tot foutopsporingsobjecten voor tijdreizen

Time Travel Debugging - Overzicht

dx (Display Debugger Object Model Expression)