Aracılığıyla paylaş


TTD Nesneleri Çağırır

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 Bir veya daha fazla virgülle ayrılmış çift tırnak içinde yer alır. Örneğin, dx @$cursession. TTD. Çağrılar("module!symbol1", "module!symbol2", ...)

Properties

Property Description
EventType Olayın türü. Bu, tüm TTD Çağrıları nesneleri için "Çağrı"dır.
ThreadId İsteği yapan iş parçacığının işletim sistemi iş parçacığı kimliği.
UniqueThreadId İzleme genelinde iş parçacığı için benzersiz bir kimlik. Normal iş parçacığı kimlikleri bir işlemin ömrü boyunca yeniden kullanılabilir, ancak UniqueThreadId'ler kullanılamaz.
Function İşlevin sembolik adı.
FunctionAddress İşlevin bellekteki adresi.
ReturnValue İşlevin dönüş değeri. İşlev geçersiz bir türe sahipse, bu özellik mevcut olmaz.

Children

Object Description
Parameters[] İşleve geçirilen parametreleri içeren bir dizi. Öğe sayısı işlevin tür imzasını temel alarak değişir.
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

Zaman yolculuğu hata ayıklaması, bir işlevin parametre sayısını ve bunların türlerini, dönüş değeri türünü ve çağırma kuralını belirlemek için PDB'lerde sağlanan sembol bilgilerini kullanır. Sembol bilgilerinin kullanılamaması veya sembollerin genel sembol bilgileriyle kısıtlanmış olması durumunda, sorgular yine de yapılabilir. Zaman yolculuğu sorgu altyapısı bu senaryoda bazı varsayımlarda bulunacaktır:

  • İşlevde dört adet 64 bit işaretsiz tamsayı parametresi vardır
  • Dönüş değeri 64 bit işaretsiz bir tamsayıdır
  • İşlev adı sabit bir dizeye ayarlanır: "UnknownOrMissingSymbols"

Bu varsayımlar, yeterli sembol bilgisi olmadığında sorguların yapılmasını sağlar. Ancak, en iyi sonuçlar için mümkün olduğunda tam PDB simgelerini kullanın.

Calls işlevinin hesaplama yaptığını ve izlemenin boyutuna bağlı olarak çalıştırılmasının biraz zaman alabileceğini unutmayın. CPU kullanımı, işlem sırasında ve görev yöneticisinde CPU kullanımını izlerken ani bir artış gösterir ve hesaplamanın ilerlediğini gösterir. Sorgu sonuçları bellekte önbelleğe alınır, bu nedenle daha önce sorgulanan çağrılara karşı sonraki sorgular önemli ölçüde daha hızlıdır.

Example Usage

Bu örnekte ucrtbase!initterm için çağrı nesnesi gösterilmektedir.

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

Zaman Yolculuğu Hata Giderme - Zaman Yolculuğu Hata Giderme nesnelerine giriş

Zaman Yolculuğu Hata Giderme - Genel Bakış

dx (Display Debugger Object Model İfadesi)