Ini membutuhkan sedikit pengetahuan teknis, tetapi dimungkinkan untuk menganalisis hang dengan Windows debugger WinDbg (gratis) . Ini memerlukan beberapa pekerjaan untuk menginstal, melampirkan ke proses, dan untuk mendapatkan simbol diatur (sangat penting!) Tetapi kemudian Anda dapat menemukan penyebab hang dengan satu perintah WinDbg (penekanan tambang):
menganalisis -v -hang
Ini yang belum pernah saya temui sebelumnya. Jalankan ini setelah membuka dump dari proses macet, dan itu akan menentukan thread mana yang bertanggung jawab atas hang dan apa yang ditunggu. Saya tahu windbg dapat membiarkan Anda memeriksa pegangan, menunjukkan semua kunci terbuka di setiap utas, dan membiarkan Anda memeriksa semuanya secara terperinci. Tetapi saya tidak menyadari bahwa dengan! Menganalisis, windbg dapat melakukan kerja keras untuk saya - memeriksa kunci yang dibuka oleh semua utas, menentukan utas mana yang menunggu yang lain, dan membangun pesanan untuk bekerja yang awalnya bertanggung jawab atas hang.
sumber
Juga Advanced Windows Debugging oleh Mario Hewardt, Daniel Pravat adalah buku yang sangat bagus untuk membantu Anda memulai dengan WinDbg: Beberapa bab pertama memberikan gambaran yang sangat terperinci tentang para debugger, dan cara menggunakan WinDbg secara khusus. Sisa buku ini diisi dengan studi kasus debugging terperinci, yang tidak harus Anda baca. Saya pikir ada studi kasus yang menjelaskan cara men-debug hang yang akan menarik bagi Anda.
Setelah Anda menemukan penyebab hang, Anda bahkan dapat membatalkannya dengan teknik debugging yang lebih canggih ^^