Bagikan melalui


Fasilitas Debug dan Pelacakan

Pengembang aplikasi Windows Sockets 2 perlu mengisolasi bug di:

  • Aplikasi.
  • Ws2_32.dll atau salah satu DLL shim kompatibilitas.
  • Penyedia layanan.

Windows Sockets 2 mengatasi kebutuhan ini melalui beberapa komponen dan fitur:

  • Dukungan terintegrasi untuk pelacakan Winsock pada Windows Vista dan yang lebih baru.
  • Versi debug yang dirancang khusus dariWs2_32.dll di Windows Vista.
  • Fasilitas debug dan pelacakan primitif terpisah untuk digunakan pada Windows Server 2003 dan Windows XP.

Pelacakan Winsock menggunakan Pelacakan Peristiwa untuk Windows

Dukungan terintegrasi untuk pelacakan Winsock menggunakan Pelacakan Peristiwa untuk Windows (ETW) disertakan pada Windows Vista dan yang lebih baru. Ini adalah metode yang disukai untuk melacak panggilan Winsock di Windows Vista dan yang lebih baru. Pelacakan Winsock menggunakan ETW ringan dan berfungsi pada versi ritel Windows. Tidak diperlukan perangkat lunak atau komponen tambahan. Fitur ini hanya perlu diaktifkan pada Windows Vista dan yang lebih baru. Untuk informasi lebih rinci, lihat topik Winsock Tracing .

Menggunakan Versi Debug Ws2_32.dll

Kombinasi versi debug dariWs2_32.dll pada pelacakan Windows Vista dan Winsock memungkinkan semua panggilan prosedur di seluruh Windows Sockets 2 API atau SPI dipantau dan, sampai batas tertentu, dikontrol.

Jika versi Microsoft Windows Software Development Kit (SDK) untuk Windows Vista diinstal ke lokasi default, versi debug Ws2_32.dll untuk berbagai arsitektur terletak di bawah folder berikut:

C:\Program Files\Microsoft SDKs\Windows\v6.0\NoRedist

Versi Ws2_32.dll yang diperiksa yang cocok dengan versi Windows dan Paket Layanan yang Anda uji harus digunakan. Ketahuilah bahwa patch keamanan mungkin telah diterapkan yang memperbarui Ws2_32.dll pada sistem pengujian Anda. Langganan DVD/CD Windows SDK untuk Windows Vista dan Platform Software Development Kit (SDK) sebelumnya mencakup build yang diperiksa untuk berbagai versi Windows. Anda harus menggunakan versi Ws2_32.dll yang diperiksa yang sama dengan versi ritel yang digunakan pada sistem yang sedang diuji. Perhatikan juga bahwa perilaku yang berjalan di bawah build yang diperiksa tidak akan sama dengan berjalan dengan build ritel.

Catatan Windows SDK untuk Windows Server 2008 dan yang lebih baru tidak lagi menyertakan versi debug khusus dariWs2_32.dll. Pengembang harus menggunakan pelacakan Winsock menggunakan ETW sebagai gantinya, karena fitur ini tidak memerlukan build debug.

Fasilitas Debug dan Pelacakan Winsock di Windows Server 2003 dan Windows XP

Versi Windows yang lebih lama sebelum Windows 8 dan Windows Server 2012 mendukung fasilitas debug dan pelacakan primitif terpisah yang disertakan sebagai sampel dengan Windows SDK dan Platform SDK yang lebih lama. Fasilitas debug/pelacakan hanya boleh digunakan pada Windows Server 2003 dan Windows XP di mana pelacakan Winsock tidak didukung.

Jika Windows SDK untuk Windows 7 diinstal ke lokasi default, fitur pelacakan Winsock primitif ini diinstal di folder berikut:

C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\NetDs\winsock\dt_dll

File DbgSpec.doc dalam folder ini menyediakan dokumentasi tentang fasilitas pelacakan primitif ini. Kode sampel dalam folder dt_dll perlu dikompilasi untuk menggunakan fasilitas ini. Pengembang bebas menggunakan kode sumber untuk mengembangkan versi DLL debug/pelacakan yang memenuhi kebutuhan spesifik mereka.

Perhatikan bahwa fitur pelacakan Winsock primitif ini hanya akan berfungsi dengan versi debug Ws2_32.dll terinstal. Jadi Anda harus mendapatkan versi Ws2_32.dll yang diperiksa yang cocok dengan versi Windows dan Paket Layanan yang Anda uji.

Batasan fasilitas pelacakan dt_dll primitif ini adalah kode sampel menggunakan kunci global (bagian penting) untuk setiap panggilan fungsi Winsock. Jadi fasilitas ini tidak berguna dalam menangani kondisi balapan. Kode sampel perlu ditulis ulang secara substansial untuk membuat fasilitas jejak ini berguna untuk menangani sebagian besar masalah Winsock nyata (menggantikan kunci global). Kode sampel ini memungkinkan pengembang untuk melacak panggilan prosedur, pengembalian prosedur, nilai parameter, dan nilai yang dikembalikan.

Pengembang dapat menggunakan mekanisme primitif ini untuk melacak panggilan prosedur, pengembalian prosedur, nilai parameter, dan nilai pengembalian. Nilai parameter dan nilai yang dikembalikan dapat diubah pada panggilan prosedur atau pengembalian prosedur. Jika diinginkan, panggilan prosedur dapat dicegah atau dialihkan. Dengan akses ke tingkat informasi dan kontrol ini, pengembang lebih mampu mengisolasi masalah dalam aplikasi, Ws2_32.dll, atau penyedia layanan.

Pelacakan Winsock