Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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