Объекты вызовов TTD
Описание
Объекты вызовов TTD используются для предоставления сведений о вызовах функций, происходящих в ходе трассировки.
Параметры
Свойство | Описание |
---|---|
Функции! Имя символа | Один или несколько, содержащихся в двойных кавычках, разделенных запятой. Например, dx @$cursession. TTD. Calls("module!symbol1", "module!symbol2", ...) |
Свойства
Свойство | Описание |
---|---|
EventType | Тип события. Это "Вызов" для всех объектов вызовов TTD. |
ThreadId | Идентификатор потока ОС потока, который сделал запрос. |
UniqueThreadId | Уникальный идентификатор потока в трассировке. Обычные идентификаторы потоков могут повторно использоваться в течение всего времени существования процесса, но UniqueThreadIds — нет. |
Функция | Символическое имя функции. |
FunctionAddress | Адрес функции в памяти. |
Возвращаемое значение | Возвращаемое значение функции. Если функция имеет тип void, это свойство не будет присутствовать. |
Дети
Объект | Описание |
---|---|
Параметры[] | Массив, содержащий параметры, передаваемые в функцию. Количество элементов зависит от сигнатуры типа функции. |
TimeStart | Объект position, описывающий позицию в начале вызова. |
TimeEnd | Объект position, описывающий позицию в конце вызова. |
Комментарии
Отладка перемещения по времени использует сведения о символах, предоставленные в PDB, для определения количества параметров для функции и их типов, типа возвращаемого значения и соглашения о вызовах. В случае, если сведения о символах недоступны или символы были ограничены общедоступными сведениями о символах, запросы по-прежнему можно выполнять. В этом сценарии подсистема запросов перемещения по времени сделает некоторые предположения:
- Функция имеет четыре 64-разрядных целочисленных параметра без знака
- Возвращаемое значение — 64-разрядное целое число без знака.
- Для имени функции задается фиксированная строка: UnknownOrMissingSymbols.
Эти предположения позволяют выполнять запросы при отсутствии адекватной информации о символах. Однако для достижения наилучших результатов по возможности используйте полные символы PDB.
Обратите внимание, что функция Calls выполняет вычисления, и в зависимости от размера трассировки выполнение может занять некоторое время. Загрузка ЦП будет резко возрастать во время вычислений, и наблюдение за загрузкой ЦП в диспетчере задач показывает, что вычисление выполняется. Результаты запроса кэшируются в памяти, поэтому последующие запросы к ранее запрошенным вызовам выполняются значительно быстрее.
Example Usage (Пример использования)
В этом примере показан объект вызова для 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
См. также:
Отладка перемещения по времени — общие сведения об объектах отладки перемещения по времени