Udostępnij przez


Wywołania TTD obiektów

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 Co najmniej jeden cudzysłów rozdzielony przecinkami. Na przykład dx @$cursession. TTD. Wywołania("module!symbol1", "module!symbol2", ...)

Properties

Property Description
EventType Typ zdarzenia. To jest "Wywołanie" dla wszystkich obiektów wywołań TTD.
ThreadId Identyfikator wątku systemu operacyjnego wątku, który złożył żądanie.
UniqueThreadId Unikatowy identyfikator wątku w całym śledzeniu. Zwykłe identyfikatory wątków mogą być ponownie używane przez cały okres istnienia procesu, ale nie można używać identyfikatorów UniqueThreadId.
Function Symboliczna nazwa funkcji.
FunctionAddress Adres funkcji w pamięci.
ReturnValue Wartość zwracana funkcji. Jeśli funkcja ma typ void, ta właściwość nie będzie obecna.

Children

Object Description
Parameters[] Tablica zawierająca parametry przekazane do funkcji. Liczba elementów różni się w zależności od sygnatury typu funkcji.
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

Debugowanie podróży czasowych używa informacji o symbolach podanych w plikach PDB w celu określenia liczby parametrów funkcji i ich typów, typu wartości zwracanej i konwencji wywoływania. W przypadku, gdy informacje o symbolach są niedostępne lub symbole zostały ograniczone do informacji o symbolach publicznych, nadal można wykonywać zapytania. Aparat zapytań dotyczących podróży czasowych wprowadzi pewne założenia w tym scenariuszu:

  • Do funkcji są dostępne cztery 64-bitowe parametry liczby całkowitej bez znaku
  • Wartość zwracana jest 64-bitową liczbą całkowitą bez znaku
  • Nazwa funkcji jest ustawiona na stały ciąg: "UnknownOrMissingSymbols"

Te założenia umożliwiają wykonywanie zapytań w przypadku braku odpowiednich informacji o symbolach. Jednak w celu uzyskania najlepszych wyników użyj pełnych symboli PDB, jeśli jest to możliwe.

Należy pamiętać, że funkcja Calls wykonuje obliczenia i w zależności od rozmiaru śledzenia może upłynąć trochę czasu. Użycie procesora CPU wzrośnie podczas obliczeń i obserwowanie użycia procesora CPU w menedżerze zadań, co daje wskazanie, że obliczenia postępują. Wyniki zapytania są buforowane w pamięci, więc kolejne zapytania względem poprzednio zapytanych wywołań są znacznie szybsze.

Example Usage

W tym przykładzie pokazano obiekt wywołań dla obiektu 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

Debugowanie podróży w czasie – wprowadzenie do obiektów związanych z debugowaniem podróży w czasie

Debugowanie podróży w czasie — omówienie

dx (Display Debugger Object Model Expression)