Latar Belakang: Saya baru di WinDbg dan mencoba menjalankannya untuk pertama kalinya. Saya ingin memeriksa dump memori yang saya ambil dari situs ASP.NET 4 yang di-host di IIS 7 pada Windows Server 2008 (x86) dan diunduh ke mesin lokal saya.
Saya menginstal alat debugging dan meluncurkan WinDbg untuk pertama kalinya, membuka crash dump. Saya pergi ke File | Simbol File Path dan atur path ke *srv*c:\symbols*http://msdl.microsoft.com/download/symbols*
dan menunggu semua simbol untuk memuat.
Ketika mencoba memuat SOS, saya mengalami masalah. Pertama, saya mencoba perintah berikut ...
.loadby sos mscorwks
... dan menerima tanggapan Unable to find module 'mscorwks'
.
Setelah menjelajahi web, saya mencoba memuat mscorwks dengan menjalankan perintah berikut ...
sxe ld mscorwks.dll
g
... dan menerima respons "Tidak ada kesalahan debug yang dapat dijalankan di 'g'"
Saya menyalin SOS.dll (dari C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319) ke direktori WinDbg, kemudian mencoba ...
.load sos
... dan menerima kesalahan ...
The call to LoadLibrary(sos) failed, Win32 error 0n193
"%1 is not a valid Win32 application."
Please check your debugger configuration and/or network access.
Saya tidak yakin bagaimana melanjutkan. Saya hanya ingin memuat SOS dan menggali file dump ini. Bantuan apa pun akan sangat dihargai.
Fyi ... Saya mencoba membuka file dump di Windows 7 versi 64-bit dengan Windbg versi 64-bit.
.loadby sos clr
saya mengertiUnable to find module 'clr'
. Saya mencoba untuk men-debug .NET 4 dengan x64 WinDbgsxe ld clr
untuk berhenti ketika CLR telah dimuat dan kemudian Anda dapat memuat SOS pada saat itu.Perintah WinDbg 'g' berarti [Lanjutkan]
Karena Anda membuka file-dump tidak ada cara untuk 'melanjutkan', itu hanya berisi memori proses.
Jadi pesan "Tidak ada kesalahan debug yang dapat dijalankan di 'g'" adalah logis dalam kasus Anda karena prosesnya tidak berjalan .
Mengenai memuat versi SOS yang benar, gunakan perintah berikut tergantung pada versi .NET.
.NET 4 dan lebih tinggi .load oleh sos
.NET 3.5 dan 2 .load oleh sos mscorwks
.NET 1.0 dan 1.1 .load clr10 \ sos
sumber
Jawaban di atas perlu ditingkatkan, karena seiring waktu hal-hal menjadi lebih mudah untuk menangani pemuatan sos.
JOHN ROBBINS memiliki artikel bagus di sekitarnya, Lihat bahwa server simbol Microsoft dikonfigurasikan dalam lintasan file simbol dan jalankan! Analisis -v pada windbg prompt, ini akan melakukan trik itu akan mengunduh file sos yang relevan. Untuk memverifikasi jalankan .chain pada prompt dan Anda akan melihat dll dimuat.
sumber
Baru saja menemukan masalah serupa memuat SOS dan mendapatkan "modul yang ditentukan tidak dapat ditemukan". Datang dengan solusi berbeda jadi jika solusi di sini tidak membantu Anda, coba ini:
.loadby sos clr - modul yang ditentukan tidak dapat ditemukan
sumber