Bagikan melalui


Objek Panggilan TTD

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 Satu atau beberapa terkandung dalam tanda kutip ganda, dipisahkan oleh koma. Misalnya dx @$cursession. TTD. Panggilan("module!symbol1", "module!symbol2", ...)

Properties

Property Description
EventType Jenis kejadian. Ini adalah "Panggilan" untuk semua objek Panggilan TTD.
ThreadId ID utas OS utas yang membuat permintaan.
UniqueThreadId ID unik untuk utas di seluruh jejak. ID utas reguler dapat digunakan kembali selama masa pakai proses tetapi UniqueThreadIds tidak dapat digunakan kembali.
Function Nama simbolis fungsi.
FunctionAddress Alamat fungsi dalam memori.
ReturnValue Nilai pengembalian fungsi. Jika fungsi memiliki jenis kekosongan, properti ini tidak akan ada.

Children

Object Description
Parameters[] Array yang berisi parameter yang diteruskan ke fungsi . Jumlah elemen bervariasi berdasarkan tanda tangan jenis fungsi.
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

Penelusuran kesalahan perjalanan waktu menggunakan informasi simbol yang disediakan dalam PDB untuk menentukan jumlah parameter untuk fungsi dan jenisnya, jenis nilai pengembalian, dan konvensi panggilan. Jika informasi simbol tidak tersedia atau simbol telah dibatasi untuk informasi simbol publik, masih dimungkinkan untuk melakukan kueri. Mesin kueri perjalanan waktu akan membuat beberapa asumsi dalam skenario ini:

  • Ada empat parameter bilangan bulat yang tidak ditandatangani 64-bit ke fungsi
  • Nilai yang dikembalikan adalah bilangan bulat yang tidak ditandatangani 64-bit
  • Nama fungsi diatur ke string tetap: "UnknownOrMissingSymbols"

Asumsi ini memungkinkan kueri dibuat tanpa adanya informasi simbol yang memadai. Namun, untuk hasil terbaik, gunakan simbol PDB penuh jika memungkinkan.

Perhatikan bahwa fungsi Panggilan melakukan komputasi, dan tergantung pada ukuran pelacakan, dapat memakan waktu cukup lama untuk dijalankan. Penggunaan CPU akan lonjakan selama komputasi dan menonton penggunaan CPU di task manager, memberikan indikasi bahwa komputasi sedang berlangsung. Hasil kueri di-cache dalam memori sehingga kueri berikutnya terhadap panggilan yang dikueri sebelumnya secara signifikan lebih cepat.

Example Usage

Contoh ini menunjukkan objek panggilan untuk 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

Penelusuran Kesalahan Perjalanan Waktu - Pengantar objek Penelusuran Kesalahan Perjalanan Waktu

Penelusuran Kesalahan Perjalanan Waktu - Gambaran Umum

dx (Ekspresi Model Objek Debugger Tampilan)