Bagikan melalui


Objek Panggilan TTD

Deskripsi

Objek Panggilan TTD digunakan untuk memberikan informasi tentang panggilan fungsi yang terjadi selama pelacakan.

Parameter

Properti Deskripsi
Fungsi! SymbolName Satu atau beberapa terkandung dalam tanda kutip ganda, dipisahkan oleh koma. Misalnya dx @$cursession. TTD. Panggilan("module!symbol1", "module!symbol2", ...)

Properti

Properti Deskripsi
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.
Fungsi Nama simbolis fungsi.
FunctionAddress Alamat fungsi dalam memori.
ReturnValue Nilai yang dikembalikan dari fungsi. Jika fungsi memiliki jenis kekosongan, properti ini tidak akan ada.

Anak-anak

Objek Deskripsi
Parameter[] Array yang berisi parameter yang diteruskan ke fungsi. Jumlah elemen bervariasi berdasarkan jenis tanda tangan fungsi.
Mulai Waktu Objek posisi yang menjelaskan posisi di awal panggilan.
TimeEnd Objek posisi yang menjelaskan posisi di akhir panggilan.

Keterangan

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

  • Ada empat parameter bilangan bulat tidak bertanda 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 jejak, dibutuhkan waktu beberapa saat 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.

Contoh Penggunaan

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

Lihat juga

Penelusuran Kesalahan Perjalanan Waktu - Pengantar objek Penelusuran Kesalahan Perjalanan Waktu

Penelusuran Kesalahan Perjalanan Waktu - Gambaran Umum